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 b9188bb52e..fa45ab76ac 100644 Binary files a/lib/loader/tests/build/default.wasm and b/lib/loader/tests/build/default.wasm differ diff --git a/lib/loader/tests/build/legacy.wasm b/lib/loader/tests/build/legacy.wasm index b9188bb52e..fa45ab76ac 100644 Binary files a/lib/loader/tests/build/legacy.wasm and b/lib/loader/tests/build/legacy.wasm differ diff --git a/lib/loader/umd/index.js b/lib/loader/umd/index.js index 3625fc2cc7..7dc9782c88 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; - 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 = { + _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..458d131021 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; + _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; + _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..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", @@ -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..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", @@ -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..57d0b91041 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 + ) ) ); } @@ -665,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]; @@ -679,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/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/bitflags.ts b/std/assembly/bitflags.ts new file mode 100644 index 0000000000..6f07d99dac --- /dev/null +++ b/std/assembly/bitflags.ts @@ -0,0 +1,53 @@ +// 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + if (!isInteger()) ERROR("BitFlags requires an integer type"); + return popcnt(flags); + } + + /** Check if no bits are set. */ + @inline export function isEmpty(flags: T): bool { + if (!isInteger()) ERROR("BitFlags requires an integer type"); + return flags == 0; + } +} 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/byteslice.ts b/std/assembly/byteslice.ts new file mode 100644 index 0000000000..d5d472db0d --- /dev/null +++ b/std/assembly/byteslice.ts @@ -0,0 +1,177 @@ +/// + +import { Pointer } from "./pointer"; +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. + +@final +export class ByteSlice { + readonly ptr: usize; + readonly length: i32; + + constructor(ptr: usize, length: i32) { + if (length < 0) throw new RangeError(E_INVALIDLENGTH); + 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 ( + (count >>> 31) | + (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..758a8b2002 --- /dev/null +++ b/std/assembly/encoding.ts @@ -0,0 +1,151 @@ +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`. Max 5 bytes. */ + @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; + 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`. Max 10 bytes. */ + @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; + if (i >= 10) break; // u64 needs at most 10 LEB128 bytes + } 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/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/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/index.d.ts b/std/assembly/index.d.ts index a604397320..b980b65c2b 100644 --- a/std/assembly/index.d.ts +++ b/std/assembly/index.d.ts @@ -2417,6 +2417,184 @@ 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; + /** 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`. */ + 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. Big-endian by default. */ +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; + /** @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; + /** @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; + /** @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; + /** @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; + equals(other: ByteSlice): bool; + toPointer(): Pointer; + toString(): string; + [key: number]: u8; +} + +/** 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; + /** 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; + 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/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/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 403e4b2087..afa7aa0ab5 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_")); @@ -48,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 { return ptr; } 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/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 3ae726a864..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,2622 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 ) @@ -2804,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 @@ -2908,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 @@ -2922,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) @@ -3169,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 @@ -3223,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 @@ -3284,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 @@ -3309,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 46e7550416..4d998505d9 100644 --- a/tests/compiler/NonNullable.release.wat +++ b/tests/compiler/NonNullable.release.wat @@ -1,1761 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -1763,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 @@ -1878,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 @@ -1895,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 @@ -1998,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 @@ -2018,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 @@ -2047,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) @@ -2253,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 @@ -2267,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 @@ -2287,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 @@ -2301,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 @@ -2318,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 6f45a1592f..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,2635 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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) @@ -2705,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 @@ -2730,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 @@ -2758,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 @@ -2786,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 @@ -2800,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 @@ -2815,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 @@ -2830,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 @@ -2843,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 @@ -2856,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 @@ -2885,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 @@ -2979,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 013383ff06..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,2636 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2725,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) @@ -2982,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 @@ -3028,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 @@ -3063,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 @@ -3093,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 @@ -3129,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 @@ -3171,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 @@ -3234,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 @@ -3273,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 @@ -3293,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 @@ -3312,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 @@ -3351,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 @@ -3371,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 @@ -3741,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 @@ -3786,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 c048fb4069..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,1979 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -2054,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 @@ -2065,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 @@ -2078,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 @@ -2095,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 @@ -2109,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 @@ -2120,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 @@ -2133,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 @@ -2154,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 @@ -2168,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 @@ -2179,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 @@ -2197,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 @@ -2214,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 @@ -2228,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 @@ -2239,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 @@ -2252,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 @@ -2266,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 @@ -2279,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 @@ -2298,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 @@ -2320,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 @@ -2334,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 @@ -2345,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 @@ -2363,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 @@ -2380,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 @@ -2396,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 @@ -2407,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 @@ -2453,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 @@ -2476,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 @@ -2487,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 @@ -2533,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 @@ -2554,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 @@ -2565,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 @@ -2578,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 @@ -2589,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 @@ -2604,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 @@ -2615,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 @@ -2629,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 @@ -2642,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 @@ -2657,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 @@ -2668,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 @@ -2685,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 @@ -2706,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 @@ -2717,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 @@ -2735,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 @@ -2746,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 @@ -2761,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 @@ -2772,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 @@ -2797,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 e9991cd04c..9cc7019e7a 100644 --- a/tests/compiler/bigint-integration.debug.wat +++ b/tests/compiler/bigint-integration.debug.wat @@ -1,2722 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2728,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 @@ -2753,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 @@ -2847,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 5b543fdbd5..303a8081ad 100644 --- a/tests/compiler/bigint-integration.release.wat +++ b/tests/compiler/bigint-integration.release.wat @@ -1,1756 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 ) @@ -1761,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 @@ -1809,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 38d655b62c..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,2683 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2750,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 @@ -2764,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 @@ -2778,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 @@ -2792,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 @@ -2811,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 @@ -2830,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 @@ -2849,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 @@ -2868,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 @@ -2890,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 @@ -2911,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 @@ -2933,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 @@ -2952,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 @@ -2974,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 @@ -2995,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 @@ -3017,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 @@ -3039,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 @@ -3063,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 @@ -3087,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 @@ -3111,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 @@ -3130,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 @@ -3149,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 @@ -3168,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 @@ -3187,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 @@ -3209,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 @@ -3230,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 @@ -3252,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 @@ -3271,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 @@ -3293,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 @@ -3314,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 @@ -3336,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 @@ -3358,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 @@ -3382,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 @@ -3406,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 @@ -3430,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 @@ -3444,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 @@ -3459,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 @@ -3553,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 b190f262d5..76d15e6209 100644 --- a/tests/compiler/builtins.debug.wat +++ b/tests/compiler/builtins.debug.wat @@ -1,2765 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2775,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) @@ -2884,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) @@ -3043,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 @@ -3065,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) @@ -3512,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 @@ -3552,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 @@ -3568,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 @@ -3585,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 @@ -3601,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 @@ -3617,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 @@ -3633,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 @@ -3649,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 @@ -3679,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 @@ -3709,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 @@ -3854,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 @@ -3875,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 @@ -3896,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 @@ -3912,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 @@ -3928,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 @@ -3944,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 @@ -3960,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 @@ -3976,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 @@ -3992,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 @@ -4008,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 @@ -4024,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 @@ -4040,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 @@ -4056,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 @@ -4155,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 @@ -4176,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 @@ -4197,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 @@ -4213,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 @@ -4229,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 @@ -4245,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 @@ -4261,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 @@ -4277,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 @@ -4293,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 @@ -4309,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 @@ -4325,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 @@ -4341,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 @@ -4357,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 @@ -4555,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 @@ -4571,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 @@ -4587,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 @@ -4603,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 @@ -4619,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 @@ -4648,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 @@ -4664,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 @@ -4680,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 @@ -4696,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 @@ -4918,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 @@ -4934,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 @@ -4950,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 @@ -4966,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 @@ -4999,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 @@ -5015,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 @@ -5031,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 @@ -5047,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 @@ -5243,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 @@ -5296,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 @@ -5393,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 @@ -5414,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 @@ -5437,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 @@ -5455,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 @@ -5473,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 @@ -5491,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 @@ -6038,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 @@ -6051,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 @@ -6064,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 @@ -6077,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 @@ -6090,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 @@ -6103,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 @@ -6116,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 @@ -6126,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 @@ -6150,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 @@ -6163,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 @@ -6187,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 @@ -6508,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 @@ -6523,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 @@ -6538,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 @@ -6553,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 @@ -6564,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 6fc565fa4d..3a17e17829 100644 --- a/tests/compiler/builtins.release.wat +++ b/tests/compiler/builtins.release.wat @@ -1,1808 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -1816,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) @@ -2025,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 @@ -2128,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 @@ -2148,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 @@ -2183,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 @@ -2196,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 @@ -2581,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 @@ -2624,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 @@ -2723,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 @@ -2976,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 15506e631d..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,2653 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2749,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 @@ -2766,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 @@ -2781,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 @@ -2794,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 @@ -2813,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 @@ -2832,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 @@ -2853,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 @@ -2947,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 d93275d5ef..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,1728 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -1816,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 @@ -1832,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 @@ -1850,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 edb671c7d8..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,2648 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2742,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 @@ -2828,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 6844ba942d..50301255e4 100644 --- a/tests/compiler/class-extends.release.wat +++ b/tests/compiler/class-extends.release.wat @@ -1,1978 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 c943539770..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,2636 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2707,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 @@ -2729,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) @@ -2930,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 @@ -2959,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 @@ -2970,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 4bfdbc78c7..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,1746 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -1814,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 1de522c1dc..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 @@ -2135,14 +1696,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 @@ -2196,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 @@ -2299,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 @@ -2370,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 @@ -2527,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 @@ -2642,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 @@ -2662,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 @@ -2710,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 @@ -2993,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 @@ -3228,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) @@ -4525,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 @@ -4540,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 @@ -4552,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 @@ -4564,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 @@ -4576,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 @@ -4588,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 @@ -4600,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 @@ -4612,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 @@ -4624,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 @@ -4636,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 @@ -4648,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 @@ -4660,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 @@ -4672,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 @@ -4684,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 @@ -4696,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 @@ -4708,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 @@ -4720,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 @@ -4732,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 @@ -4744,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 @@ -4756,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 @@ -4773,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 @@ -4795,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) @@ -5707,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 @@ -5733,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 @@ -5756,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 @@ -5782,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 @@ -5805,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 @@ -5828,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 @@ -5867,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 @@ -6439,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 @@ -6475,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 @@ -6848,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 @@ -6901,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 @@ -6924,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 @@ -7044,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 @@ -7338,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 @@ -7403,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 @@ -7461,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 @@ -7566,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 @@ -7596,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 @@ -7787,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 @@ -7805,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 @@ -7823,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 @@ -7841,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 @@ -7859,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 @@ -7877,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 @@ -7942,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 @@ -7950,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 @@ -7958,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 @@ -7966,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 @@ -7988,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 @@ -8020,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 @@ -8043,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) @@ -8080,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 @@ -8100,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 @@ -8147,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 @@ -8246,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 @@ -8259,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 @@ -8272,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 @@ -8306,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 @@ -8711,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 @@ -8736,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 @@ -8759,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 @@ -8784,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 @@ -8809,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 @@ -8832,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 @@ -8857,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 @@ -8880,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 @@ -8905,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 @@ -8928,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 @@ -8953,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 @@ -8988,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 @@ -9079,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 @@ -9258,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 @@ -9367,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 @@ -9397,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 @@ -9834,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 @@ -9852,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 @@ -9870,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 @@ -10078,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 @@ -10096,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 @@ -10114,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 @@ -10226,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 @@ -10869,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 @@ -10895,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 @@ -10915,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 @@ -11345,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 @@ -11368,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 @@ -11393,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 @@ -11418,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 @@ -11447,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 @@ -11476,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 @@ -11505,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 @@ -11523,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 @@ -11548,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 @@ -11573,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 @@ -11602,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 @@ -11688,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 @@ -11867,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 @@ -11972,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 @@ -12002,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 @@ -12410,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 @@ -12433,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 @@ -12859,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 @@ -13036,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 ) @@ -13613,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 @@ -13637,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 @@ -13661,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 @@ -13685,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 @@ -13709,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 @@ -13736,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 @@ -13803,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 @@ -13827,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 @@ -13854,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 @@ -13921,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 @@ -13945,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 @@ -13969,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 @@ -13993,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 @@ -14017,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 @@ -14041,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 @@ -14065,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 @@ -14089,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 @@ -14113,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 @@ -14140,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 948c2ce29f..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 - call $~lib/rt/itcms/__visit - i32.const 3968 + i32.const 1248 call $~lib/rt/itcms/__visit - i32.const 4096 + i32.const 2000 call $~lib/rt/itcms/__visit - i32.const 3024 + i32.const 2128 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 @@ -1814,16 +1594,12 @@ 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 - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -2009,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 @@ -2363,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 @@ -2398,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 @@ -2469,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 @@ -2480,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 @@ -2603,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 @@ -2614,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 @@ -2625,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 @@ -2638,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 @@ -2753,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 @@ -2764,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 @@ -2777,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 @@ -2816,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 @@ -2941,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 @@ -2970,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 @@ -2993,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 @@ -3004,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 @@ -3017,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 @@ -3047,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 @@ -3093,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 @@ -3118,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 @@ -3239,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 @@ -3259,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 @@ -3305,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 @@ -3316,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 @@ -3327,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 @@ -3340,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 @@ -3364,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 @@ -3526,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) @@ -3536,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) @@ -3546,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) @@ -3566,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 @@ -3584,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 @@ -3595,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 @@ -3606,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 @@ -3681,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 @@ -3689,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 @@ -3702,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 @@ -3715,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) @@ -3736,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 @@ -3747,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 @@ -3791,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 @@ -3800,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) @@ -3819,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 @@ -3830,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 @@ -3843,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 @@ -3980,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 @@ -3991,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 @@ -4060,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 @@ -4082,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 @@ -4096,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 @@ -4114,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 @@ -4130,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 @@ -4141,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 @@ -4226,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 @@ -4237,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 @@ -4248,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 @@ -4359,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 @@ -4378,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 @@ -4415,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 @@ -4426,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 @@ -4493,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 @@ -4504,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 @@ -4571,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 @@ -4579,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 @@ -4589,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) @@ -4796,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 @@ -4843,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 @@ -4885,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 @@ -4919,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 @@ -4979,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 @@ -5055,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 @@ -5094,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 @@ -5107,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 @@ -5294,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 @@ -5313,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 @@ -5332,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 @@ -5350,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 @@ -5369,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 @@ -5388,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 @@ -5417,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 @@ -5452,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 @@ -5468,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 @@ -5571,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 @@ -5617,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 @@ -5656,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 @@ -5698,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 @@ -5733,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 @@ -5836,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 @@ -5856,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 @@ -5893,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 @@ -5993,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 @@ -6053,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 @@ -6125,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 @@ -6146,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 @@ -6167,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 @@ -6177,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 @@ -6220,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 @@ -6288,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 @@ -6301,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 @@ -6342,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 @@ -6371,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 @@ -6392,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 @@ -6415,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 @@ -6436,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 @@ -6510,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 @@ -6523,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 @@ -6632,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 @@ -6647,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 @@ -6662,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 @@ -6677,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 @@ -6692,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 @@ -6707,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 @@ -6730,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 @@ -6744,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 @@ -6784,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 @@ -6824,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 @@ -6857,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) @@ -6867,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 @@ -6893,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 @@ -6901,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 @@ -6953,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 @@ -6980,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 @@ -7044,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 @@ -7097,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 @@ -7162,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 @@ -7203,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 @@ -7216,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 @@ -7419,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 @@ -7437,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 @@ -7456,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 @@ -7473,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 @@ -7491,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 @@ -7510,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 @@ -7528,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 @@ -7547,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 @@ -7565,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 @@ -7584,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 @@ -7601,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 @@ -7627,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 @@ -7648,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 @@ -7662,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 @@ -7709,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 @@ -7800,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 @@ -7843,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 @@ -7893,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 @@ -7906,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 @@ -7935,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 @@ -8143,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 @@ -8308,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 @@ -8323,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 @@ -8338,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 @@ -8371,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 @@ -8385,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 @@ -8430,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 @@ -8484,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 @@ -8527,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 @@ -8574,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 @@ -8620,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 @@ -8691,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 @@ -8764,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 @@ -8856,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 @@ -8908,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 @@ -8959,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 @@ -9027,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 @@ -9063,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 @@ -9076,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 @@ -9211,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 @@ -9219,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) @@ -9227,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 @@ -9245,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 @@ -9262,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 @@ -9277,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) @@ -9285,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 @@ -9300,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) @@ -9308,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 @@ -9323,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) @@ -9331,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 @@ -9346,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 @@ -9364,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 @@ -9381,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 @@ -9396,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) @@ -9404,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 @@ -9421,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 @@ -9438,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 @@ -9467,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 @@ -9574,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 @@ -9587,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 @@ -9633,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 @@ -9730,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 @@ -9842,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 @@ -9911,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 @@ -9982,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 @@ -10038,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 @@ -10159,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 @@ -10182,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 @@ -10245,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 43d15cacb8..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 @@ -2093,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 @@ -2154,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 @@ -2257,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 @@ -2328,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 @@ -2485,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 @@ -2600,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 @@ -2620,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 @@ -2668,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 @@ -2763,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 @@ -3028,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 @@ -3043,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 @@ -3055,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 @@ -3067,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 @@ -3079,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 @@ -3091,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 @@ -3103,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 @@ -3115,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 @@ -3127,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 @@ -3139,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 @@ -3151,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 @@ -3166,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 @@ -3188,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) @@ -3698,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 @@ -3711,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 @@ -3724,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 @@ -3809,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 @@ -3874,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 @@ -3932,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 @@ -4037,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 @@ -4119,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 @@ -4149,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 @@ -4658,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 @@ -5040,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 @@ -5144,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 @@ -5379,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 @@ -5720,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 @@ -6091,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 ) @@ -6344,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 @@ -6368,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 @@ -6395,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 @@ -6462,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 @@ -6488,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 @@ -6512,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 @@ -6536,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 @@ -6560,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 @@ -6584,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 de6ba188b1..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 - call $~lib/rt/itcms/__visit - i32.const 3776 + i32.const 1248 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 @@ -1724,16 +1502,12 @@ 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 - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1820,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 @@ -1975,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 @@ -2010,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 @@ -2077,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 @@ -2088,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 @@ -2177,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 @@ -2188,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 @@ -2208,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 @@ -2237,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 @@ -2354,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 @@ -2365,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 @@ -2417,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 @@ -2428,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 @@ -2441,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 @@ -2480,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 @@ -2557,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 @@ -2568,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 @@ -2580,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 @@ -2606,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 @@ -2649,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 @@ -2678,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 @@ -2744,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 @@ -2755,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 @@ -2850,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 @@ -2861,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 @@ -2952,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 @@ -2963,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 @@ -2992,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 @@ -3018,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 @@ -3032,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 @@ -3105,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 @@ -3116,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 @@ -3201,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 @@ -3209,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 @@ -3219,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) @@ -3426,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 @@ -3471,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 @@ -3514,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 @@ -3550,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 @@ -3595,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 @@ -3632,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 @@ -3664,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 @@ -3694,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 @@ -3732,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 @@ -3753,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 @@ -3774,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 @@ -3784,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 @@ -3827,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 @@ -3895,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 @@ -3909,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 @@ -3940,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 @@ -3961,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 @@ -3984,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 @@ -4005,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 @@ -4056,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 @@ -4114,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 @@ -4147,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 @@ -4161,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 @@ -4196,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 @@ -4263,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 @@ -4295,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 @@ -4336,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 @@ -4376,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 @@ -4411,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 @@ -4450,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 @@ -4506,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 @@ -4570,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 @@ -4672,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 @@ -4720,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 @@ -4742,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 @@ -4772,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 21e392bdae..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 @@ -2182,14 +1743,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 @@ -2243,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 @@ -2346,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 @@ -2417,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 @@ -2574,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 @@ -2689,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 @@ -2709,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 @@ -2757,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 @@ -3364,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 @@ -3920,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) @@ -4058,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) @@ -4268,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) @@ -4552,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 @@ -4574,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) @@ -4830,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 @@ -4943,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 @@ -5008,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 @@ -5046,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 @@ -5086,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 @@ -5116,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 @@ -5146,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 @@ -5409,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 @@ -5506,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 @@ -5572,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 @@ -5980,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 @@ -6015,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 @@ -6792,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 @@ -7071,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 @@ -7587,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 @@ -7614,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 @@ -7626,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 @@ -7650,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 @@ -7662,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 @@ -7686,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 @@ -7698,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 @@ -7722,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 @@ -7734,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 @@ -7950,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) @@ -8198,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 @@ -8247,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 @@ -8310,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 @@ -8333,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 @@ -8432,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 @@ -8459,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 @@ -8483,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 @@ -8507,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 @@ -8525,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 @@ -8549,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 @@ -8573,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 @@ -8597,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 @@ -8627,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 @@ -8651,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 @@ -8677,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 @@ -8703,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 @@ -8729,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 @@ -8755,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 @@ -8782,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 @@ -8813,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 @@ -8838,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 @@ -8863,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 @@ -8886,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 @@ -8909,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 @@ -8934,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 @@ -8957,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 @@ -8969,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 @@ -8981,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 @@ -8993,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 @@ -9020,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 @@ -9044,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 @@ -9073,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 @@ -9099,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 @@ -9111,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 @@ -9124,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 @@ -9137,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 @@ -9149,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 @@ -9161,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 @@ -9173,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 @@ -9185,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 @@ -9197,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 @@ -9209,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 @@ -9221,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 @@ -9251,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 @@ -9275,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 @@ -9311,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 @@ -9341,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 @@ -9365,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 @@ -9401,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 @@ -9439,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 @@ -9451,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 @@ -9474,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 @@ -9486,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 @@ -9498,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 @@ -9522,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 @@ -9546,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 @@ -9570,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 @@ -9596,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 @@ -9620,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 @@ -9632,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 @@ -9644,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 @@ -9656,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 @@ -9668,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 @@ -9680,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 @@ -9692,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 @@ -9704,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 @@ -9721,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 @@ -9738,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 @@ -9750,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 @@ -9777,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 @@ -9789,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 @@ -9801,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 @@ -9813,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 @@ -9826,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) @@ -10062,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 @@ -10098,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 @@ -10381,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 @@ -10416,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 @@ -10808,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 @@ -10912,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 @@ -11574,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 @@ -11638,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 @@ -11668,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 @@ -11681,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 @@ -11694,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 @@ -11923,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 @@ -11948,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 @@ -11961,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 @@ -12159,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 ) @@ -12497,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 @@ -12521,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 @@ -12545,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 @@ -12569,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 @@ -12593,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 @@ -12617,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 @@ -12641,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 @@ -12665,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 @@ -12689,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 @@ -12716,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 @@ -12783,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 @@ -12809,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 @@ -12834,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 @@ -12871,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 @@ -12895,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 48c116fafd..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 - call $~lib/rt/itcms/__visit - i32.const 4288 + i32.const 1280 call $~lib/rt/itcms/__visit - i32.const 4992 + i32.const 2128 call $~lib/rt/itcms/__visit - i32.const 3056 + i32.const 2320 call $~lib/rt/itcms/__visit - i32.const 1840 + i32.const 3024 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 @@ -1873,16 +1653,12 @@ 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 - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -2339,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 @@ -2739,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) @@ -2948,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 @@ -3002,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 @@ -3069,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 @@ -3097,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 @@ -3107,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 @@ -3150,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 @@ -3199,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 @@ -3224,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 @@ -3270,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 @@ -3291,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 @@ -3314,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 @@ -3336,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 @@ -3390,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 @@ -3455,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 @@ -3480,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 @@ -3522,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 @@ -3543,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 @@ -3574,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 @@ -3632,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 @@ -3713,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 @@ -3755,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 @@ -3786,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 @@ -3816,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 @@ -3899,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 @@ -4002,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 @@ -4252,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 @@ -4270,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 @@ -4287,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 @@ -4345,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 @@ -4377,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 @@ -4425,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 @@ -4442,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 @@ -4545,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 @@ -4565,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 @@ -4597,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) @@ -4642,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 @@ -4739,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 @@ -4749,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 @@ -4793,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 @@ -4814,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 @@ -4835,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 @@ -4856,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 @@ -4877,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 @@ -4898,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 @@ -4919,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 @@ -4940,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 @@ -4961,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 @@ -4981,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 @@ -5000,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 @@ -5023,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 @@ -5046,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 @@ -5099,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 @@ -5164,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 @@ -5217,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 @@ -5239,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 @@ -5259,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 @@ -5279,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 @@ -5301,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 @@ -5321,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 @@ -5332,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 @@ -5404,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 @@ -5433,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 @@ -5456,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 @@ -5467,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 @@ -5599,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 @@ -5610,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 @@ -5681,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 @@ -5709,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 @@ -5732,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 @@ -5780,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 @@ -5801,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 @@ -5848,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 @@ -5867,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 @@ -5878,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 @@ -6030,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 @@ -6042,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 @@ -6054,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 @@ -6065,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 @@ -6129,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 @@ -6140,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 @@ -6222,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 @@ -6233,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 @@ -6323,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 @@ -6351,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 @@ -6383,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 @@ -6394,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 @@ -6421,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 @@ -6442,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 @@ -6545,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 @@ -6556,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 @@ -6628,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 @@ -6723,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 @@ -6734,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 @@ -6808,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 @@ -6862,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 @@ -6927,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 @@ -6942,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 @@ -7011,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 @@ -7041,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 @@ -7095,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 @@ -7122,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 @@ -7143,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 @@ -7174,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 @@ -7201,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 @@ -7222,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 @@ -7253,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 @@ -7312,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 @@ -7323,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 @@ -7333,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 @@ -7352,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 @@ -7462,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 @@ -7473,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 @@ -7493,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 @@ -7504,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 @@ -7524,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 @@ -7535,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 @@ -7555,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 @@ -7566,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 @@ -7581,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 @@ -7611,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 @@ -7665,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 @@ -7676,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 @@ -7702,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 @@ -7723,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 @@ -7744,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 @@ -7765,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 @@ -7808,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 @@ -7819,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 @@ -7879,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 @@ -7890,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 @@ -8049,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 @@ -8060,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 @@ -8144,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 @@ -8155,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 @@ -8203,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 @@ -8214,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 @@ -8322,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 @@ -8333,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 @@ -8477,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 @@ -8488,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 @@ -8506,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 @@ -8540,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 @@ -8556,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 @@ -8579,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 @@ -8611,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) @@ -8621,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) @@ -8631,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) @@ -8653,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 @@ -8669,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 @@ -8720,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 @@ -8731,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 @@ -8772,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 @@ -8814,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 @@ -8864,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 @@ -8875,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 @@ -8939,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 @@ -8958,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 @@ -8970,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 @@ -8986,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 @@ -8997,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 @@ -9048,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 @@ -9059,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 @@ -9102,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 @@ -9141,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 @@ -9193,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 @@ -9212,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 @@ -9247,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 @@ -9259,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 @@ -9274,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 @@ -9355,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 @@ -9403,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 @@ -9420,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 @@ -9448,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 @@ -9506,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 @@ -9573,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 @@ -9669,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 @@ -9717,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 @@ -9732,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 @@ -9763,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 @@ -9793,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 ffe32e942d..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 @@ -2113,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 @@ -2174,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 @@ -2277,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 @@ -2348,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 @@ -2505,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 @@ -2620,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 @@ -2640,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 @@ -2688,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 @@ -3018,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 @@ -3311,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 @@ -3340,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 @@ -3365,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 @@ -3390,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 @@ -3402,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 @@ -3429,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 @@ -3441,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 @@ -3453,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 @@ -3465,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 @@ -3477,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 @@ -3490,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 @@ -3503,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 @@ -3516,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 @@ -3528,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 @@ -3540,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 @@ -3552,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 @@ -3564,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 @@ -3576,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 @@ -3588,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 @@ -3615,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 @@ -3638,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 @@ -3661,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 @@ -3684,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 @@ -3707,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 @@ -3719,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 @@ -3731,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 @@ -3787,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 @@ -3809,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) @@ -4040,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 @@ -4105,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 @@ -4143,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 @@ -4183,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 @@ -4213,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 @@ -4243,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 @@ -4458,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 @@ -4525,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 @@ -4555,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 @@ -4605,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 @@ -4696,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) @@ -5456,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 @@ -5624,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 @@ -5718,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 @@ -5971,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 ) @@ -6235,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 @@ -6259,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 @@ -6283,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 @@ -6310,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 @@ -6377,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 @@ -6403,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 @@ -6427,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 @@ -6454,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 @@ -6521,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 @@ -6545,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 @@ -6569,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 d41d0330ac..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 - call $~lib/rt/itcms/__visit - i32.const 4064 + i32.const 1280 call $~lib/rt/itcms/__visit - i32.const 4112 + i32.const 2096 call $~lib/rt/itcms/__visit - i32.const 3056 + i32.const 2144 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 @@ -1751,16 +1529,12 @@ 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 - br $__inlined_func$~lib/rt/itcms/interrupt$71 + br $__inlined_func$~lib/rt/itcms/interrupt$69 end local.get $2 i32.const 0 @@ -1924,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 @@ -2088,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 @@ -2098,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 @@ -2171,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 @@ -2221,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 @@ -2271,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 @@ -2282,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 @@ -2382,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 @@ -2438,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 @@ -2449,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 @@ -2510,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 @@ -2530,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 @@ -2541,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 @@ -2615,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 @@ -2626,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 @@ -2698,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 @@ -2709,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 @@ -2783,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 @@ -2795,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 @@ -2807,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 @@ -2819,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 @@ -2830,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 @@ -2971,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 @@ -2982,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 @@ -3045,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 @@ -3054,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 @@ -3065,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 @@ -3094,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 @@ -3123,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 @@ -3181,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 @@ -3235,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 @@ -3246,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 @@ -3305,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 @@ -3333,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 @@ -3344,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 @@ -3399,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 @@ -3427,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 @@ -3438,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 @@ -3530,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 @@ -3556,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 @@ -3578,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 @@ -3600,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 @@ -3622,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 @@ -3644,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 @@ -3655,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 @@ -3701,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 @@ -3710,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 @@ -3721,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 @@ -3768,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 @@ -3777,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 @@ -3789,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 @@ -3833,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) @@ -4042,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 @@ -4070,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 @@ -4080,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 @@ -4123,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 @@ -4172,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 @@ -4197,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 @@ -4243,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 @@ -4264,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 @@ -4287,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 @@ -4309,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 @@ -4431,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 @@ -4495,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 @@ -4591,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 @@ -4620,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 @@ -4638,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 5add668f02..b15a4d84c0 100644 --- a/tests/compiler/comma.debug.wat +++ b/tests/compiler/comma.debug.wat @@ -1,2692 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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) @@ -2699,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 @@ -2734,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 @@ -2752,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 @@ -2764,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 @@ -2786,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 @@ -2798,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 @@ -2818,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 @@ -2830,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 @@ -2860,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 @@ -2881,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 @@ -2975,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 148154864c..5b453691b4 100644 --- a/tests/compiler/comma.release.wat +++ b/tests/compiler/comma.release.wat @@ -1,1751 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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) @@ -1756,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 @@ -1819,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 @@ -1830,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 @@ -1871,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 7353427c1f..acd8804fd5 100644 --- a/tests/compiler/declare.debug.wat +++ b/tests/compiler/declare.debug.wat @@ -1,2720 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2727,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 @@ -2742,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 @@ -2836,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 1b74d7f2a2..69bb8918b4 100644 --- a/tests/compiler/declare.release.wat +++ b/tests/compiler/declare.release.wat @@ -1,1795 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -1799,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 549e2217ea..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,2642 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2910,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 @@ -3014,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 @@ -3028,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) @@ -3229,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 @@ -3258,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 @@ -3276,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 @@ -3294,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 @@ -3314,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 @@ -3327,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 @@ -3345,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 @@ -3363,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 @@ -3386,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 @@ -3404,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 @@ -3422,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 @@ -3440,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 @@ -3458,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 @@ -3476,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 @@ -3487,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 ad96a42c70..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,1737 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 ) @@ -1769,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 @@ -1872,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 @@ -1892,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 @@ -1921,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 @@ -2126,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 @@ -2139,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 @@ -2180,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 @@ -2195,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 @@ -2210,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 @@ -2225,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 @@ -2285,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 @@ -2300,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 @@ -2315,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 @@ -2330,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 @@ -2345,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 @@ -2360,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 @@ -2371,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 f803e4e78d..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)) @@ -2196,14 +2198,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 @@ -3567,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 ) @@ -4836,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 @@ -7296,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 943ec1f32c..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 @@ -1636,12 +1631,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 @@ -2065,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) @@ -2170,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 @@ -2226,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 @@ -2323,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 @@ -2392,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 @@ -2476,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 @@ -2529,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 @@ -2576,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 @@ -2630,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 @@ -2694,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 @@ -2706,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 + 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 - global.get $~lib/memory/__stack_pointer + 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.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 - end - local.get $3 + 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 offset=4 local.get $0 - local.get $6 - i32.store offset=8 + 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 @@ -2883,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 @@ -2902,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 @@ -3024,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 @@ -3059,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 @@ -3140,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 @@ -3196,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 @@ -3262,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) @@ -3402,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 @@ -3465,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 @@ -3494,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 @@ -3594,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 @@ -3614,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 @@ -3649,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 @@ -3696,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 @@ -3712,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 @@ -3742,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 @@ -3765,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 @@ -3898,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 @@ -3937,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 @@ -3992,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 @@ -4032,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 @@ -4049,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 @@ -4059,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 @@ -4117,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 @@ -4139,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 @@ -4268,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 @@ -4330,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 @@ -4494,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 @@ -4735,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 @@ -4799,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 @@ -4867,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 @@ -4933,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 @@ -4971,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 @@ -4993,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 @@ -5006,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 @@ -5069,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 @@ -5097,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 @@ -5173,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 e7e134f808..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,2636 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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) @@ -2711,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 @@ -2724,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 @@ -2753,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 @@ -2852,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 be7d7312e8..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,2635 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2720,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 @@ -2735,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 @@ -2753,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 @@ -2768,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 @@ -2781,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 @@ -2807,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 @@ -2824,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 @@ -2840,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 @@ -2855,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 @@ -2869,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 @@ -2884,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 @@ -2897,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 @@ -2910,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 @@ -2925,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 @@ -2938,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 @@ -2952,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 @@ -2962,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 @@ -2974,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 @@ -2984,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 @@ -2998,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 @@ -3033,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 @@ -3127,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 6b3fc4d0c8..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,1695 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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) @@ -1775,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 @@ -1822,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 @@ -1832,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 @@ -1843,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 @@ -1854,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 @@ -1870,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 @@ -1880,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 acee9df05d..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,2635 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2712,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) @@ -2722,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) @@ -2732,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) @@ -2742,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) @@ -2758,7 +87,7 @@ global.set $~argumentsLength local.get $adder i32.load - call_indirect (type $2) + call_indirect (type $0) return ) (func $~start @@ -2769,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 @@ -2791,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) @@ -3035,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 @@ -3078,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 @@ -3096,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 @@ -3122,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 @@ -3136,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 @@ -3144,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 @@ -3156,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 @@ -3173,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 @@ -3193,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 @@ -3204,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 1643c171e5..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,1695 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 ) @@ -1776,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 @@ -1784,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 @@ -1825,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 @@ -1874,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 @@ -1889,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 @@ -1918,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 @@ -1943,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 @@ -1961,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 @@ -1973,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 90e3a5c15c..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,2665 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2733,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 @@ -2748,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 @@ -2763,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 @@ -2857,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 51ac5c1cd2..cfdf02b057 100644 --- a/tests/compiler/getter-setter.release.wat +++ b/tests/compiler/getter-setter.release.wat @@ -1,1789 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -1792,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 719117b233..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,809 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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) @@ -1870,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 @@ -1916,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 @@ -1948,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 @@ -2189,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 @@ -2292,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 @@ -2363,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 @@ -2520,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 @@ -2635,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 @@ -2655,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 @@ -2691,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 @@ -2851,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 @@ -2891,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 @@ -2985,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 bad354e773..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,605 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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) @@ -1242,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 @@ -1267,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 @@ -1294,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 @@ -1366,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 @@ -1380,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 @@ -1398,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 @@ -1416,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) @@ -1431,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 @@ -1507,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 @@ -1559,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 @@ -1594,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 @@ -1740,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 @@ -1755,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 @@ -1770,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 @@ -1787,7 +994,7 @@ i32.and memory.copy local.get $1 - i32.const 36196 + i32.const 33932 i32.ge_u if local.get $1 @@ -1810,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 @@ -1861,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 @@ -1870,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 @@ -1901,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 @@ -1946,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 45faab4c85..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,2635 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2722,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 @@ -2746,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 @@ -2759,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 @@ -2772,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 @@ -2785,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 @@ -2798,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 @@ -2811,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 @@ -2824,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 @@ -2841,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 @@ -2935,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 a248d8b426..aab4812562 100644 --- a/tests/compiler/if.release.wat +++ b/tests/compiler/if.release.wat @@ -1,1760 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -1767,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 @@ -1776,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 ffa195d035..3e89ffca11 100644 --- a/tests/compiler/import-memory.debug.wat +++ b/tests/compiler/import-memory.debug.wat @@ -1,2715 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2724,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 @@ -2818,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 d3ee8dd98e..6536fc9fd1 100644 --- a/tests/compiler/import-memory.release.wat +++ b/tests/compiler/import-memory.release.wat @@ -1,2002 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 b0d818797a..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,175 +87,396 @@ 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 - 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 $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + 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) + (func $~lib/rt/itcms/Object#set:color (param $this i32) (param $color 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 + 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#set:prev (param $this i32) (param $prev i32) + (func $~lib/rt/itcms/Object#get:prev (param $this i32) (result i32) local.get $this - local.get $prev - i32.store offset=4 + i32.load offset=8 ) - (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) + (func $~lib/rt/itcms/Object#set:next (param $this i32) (param $obj 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 $obj local.get $this - i32.load offset=4 + 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/Block#get:next (param $this i32) (result i32) + (func $~lib/rt/itcms/Object#unlink (param $this i32) + (local $next i32) + (local $prev i32) local.get $this - i32.load offset=8 - ) - (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) + 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 64 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end 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 + call $~lib/rt/itcms/Object#get:prev + local.set $prev i32.const 1 drop - local.get $blockInfo - i32.const 1 - i32.and + local.get $prev i32.eqz if i32.const 0 - i32.const 288 - i32.const 268 - i32.const 14 + i32.const 64 + i32.const 132 + i32.const 16 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 + 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 288 - i32.const 270 - i32.const 14 + i32.const 160 + i32.const 224 + i32.const 22 + i32.const 28 call $~lib/builtins/abort unreachable end - local.get $size - i32.const 256 + 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 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 $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 304 + 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 304 + 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 @@ -322,7 +532,7 @@ i32.eqz if i32.const 0 - i32.const 288 + i32.const 304 i32.const 284 i32.const 14 call $~lib/builtins/abort @@ -475,7 +685,7 @@ i32.eqz if i32.const 0 - i32.const 288 + i32.const 304 i32.const 201 i32.const 14 call $~lib/builtins/abort @@ -492,7 +702,7 @@ i32.eqz if i32.const 0 - i32.const 288 + i32.const 304 i32.const 203 i32.const 14 call $~lib/builtins/abort @@ -581,7 +791,7 @@ i32.eqz if i32.const 0 - i32.const 288 + i32.const 304 i32.const 221 i32.const 16 call $~lib/builtins/abort @@ -624,7 +834,7 @@ i32.eqz if i32.const 0 - i32.const 288 + i32.const 304 i32.const 233 i32.const 14 call $~lib/builtins/abort @@ -642,7 +852,7 @@ i32.eqz if i32.const 0 - i32.const 288 + i32.const 304 i32.const 234 i32.const 14 call $~lib/builtins/abort @@ -710,7 +920,7 @@ i32.eqz if i32.const 0 - i32.const 288 + i32.const 304 i32.const 251 i32.const 14 call $~lib/builtins/abort @@ -827,7 +1037,7 @@ i32.eqz if i32.const 0 - i32.const 288 + i32.const 304 i32.const 382 i32.const 14 call $~lib/builtins/abort @@ -873,7 +1083,7 @@ i32.eqz if i32.const 0 - i32.const 288 + i32.const 304 i32.const 389 i32.const 16 call $~lib/builtins/abort @@ -905,7 +1115,7 @@ i32.eqz if i32.const 0 - i32.const 288 + i32.const 304 i32.const 402 i32.const 5 call $~lib/builtins/abort @@ -1120,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 - 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 + i32.eqz 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 + 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 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 - 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 288 - 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 + call $~lib/rt/itcms/Object#set:nextWithColor + local.get $obj + i32.const 0 + call $~lib/rt/itcms/Object#set:prev 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 + 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 - 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 + drop + local.get $obj 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 + call $~lib/rt/tlsf/__free 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 + (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 - i32.const 288 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 - 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 + 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 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 @@ -2756,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 @@ -2764,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 @@ -2791,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 @@ -2813,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) @@ -3145,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 @@ -3161,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 @@ -3338,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 ) @@ -3422,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 89beb8a268..b4a4c34c96 100644 --- a/tests/compiler/inlining-blocklocals.debug.wat +++ b/tests/compiler/inlining-blocklocals.debug.wat @@ -1,2694 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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) @@ -2729,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 @@ -2741,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 @@ -2753,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 @@ -2765,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 @@ -2773,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 @@ -2800,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 @@ -2894,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 9e2826e6ea..d162825303 100644 --- a/tests/compiler/inlining-blocklocals.release.wat +++ b/tests/compiler/inlining-blocklocals.release.wat @@ -1,1786 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -1795,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 @@ -1806,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 c0473e10aa..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,2639 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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) @@ -2711,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) @@ -2823,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 @@ -2845,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) @@ -3142,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 @@ -3177,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 @@ -3193,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 e52fcae034..f22cb73924 100644 --- a/tests/compiler/issues/1714.release.wat +++ b/tests/compiler/issues/1714.release.wat @@ -1,2049 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 2a75e3f73f..ce6afd0bd1 100644 --- a/tests/compiler/issues/2825.debug.wat +++ b/tests/compiler/issues/2825.debug.wat @@ -1,2691 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2693,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 @@ -2707,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 @@ -2761,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 @@ -2855,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 629aff33e3..985541d8ee 100644 --- a/tests/compiler/issues/2825.release.wat +++ b/tests/compiler/issues/2825.release.wat @@ -1,1750 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -1753,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 @@ -1795,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 @@ -1809,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 d5e440ca06..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,2635 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2722,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 @@ -2762,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 @@ -2801,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 @@ -2820,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 @@ -2856,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 @@ -2868,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 @@ -2881,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 @@ -2893,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 @@ -2906,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 @@ -2917,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 @@ -2939,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 @@ -2962,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 @@ -2979,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 @@ -3073,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 5150e47264..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,1695 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -1772,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 @@ -1797,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 @@ -1820,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 @@ -1832,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 @@ -1846,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 @@ -1904,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 c332e54c23..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,2635 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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) @@ -3465,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 @@ -3489,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 @@ -3502,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 @@ -3517,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 @@ -3611,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 b951544b71..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,2635 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -3814,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 @@ -3839,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 @@ -3852,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 @@ -3869,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 @@ -3882,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 @@ -3897,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 @@ -3912,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 @@ -3927,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 @@ -3949,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 @@ -3971,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 @@ -3986,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 @@ -4001,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 @@ -4016,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 @@ -4031,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 @@ -4125,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 f648c36884..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,1696 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -2452,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 @@ -2501,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 @@ -2517,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 @@ -2529,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 @@ -2541,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 @@ -2553,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 @@ -2565,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 @@ -2582,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 @@ -2599,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 @@ -2611,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 @@ -2623,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 @@ -2635,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 7174865abe..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,2635 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2902,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 @@ -2927,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 @@ -2940,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 @@ -2957,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 @@ -2970,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 @@ -2985,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 @@ -3000,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 @@ -3015,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 @@ -3037,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 @@ -3059,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 @@ -3074,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 @@ -3089,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 @@ -3104,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 @@ -3119,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 @@ -3213,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 a2e54989f7..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,1696 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -1946,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 @@ -1995,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 @@ -2011,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 @@ -2023,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 @@ -2035,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 @@ -2047,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 @@ -2059,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 @@ -2076,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 @@ -2093,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 @@ -2105,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 @@ -2117,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 @@ -2129,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 8dadcb0408..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,2680 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2779,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 @@ -2791,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 @@ -2800,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 @@ -2816,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 @@ -2832,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 @@ -2848,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 @@ -2864,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 @@ -2880,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 @@ -2903,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 @@ -2919,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 @@ -2935,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 @@ -2951,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 @@ -2967,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 @@ -2976,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 @@ -2996,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 @@ -3009,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 @@ -3022,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 @@ -3037,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 @@ -3050,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 @@ -3063,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 @@ -3090,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 @@ -3106,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 @@ -3122,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 @@ -3138,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 @@ -3154,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 @@ -3174,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 @@ -3268,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 81c0ba4f4e..bb0002009d 100644 --- a/tests/compiler/memory.release.wat +++ b/tests/compiler/memory.release.wat @@ -1,1792 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -1797,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 @@ -1815,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 @@ -1833,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 @@ -1957,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 @@ -1969,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 @@ -1995,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 @@ -2007,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 b6d7c13aeb..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,2635 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2956,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 @@ -2980,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 @@ -2995,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 @@ -3015,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 @@ -3030,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 @@ -3045,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 @@ -3060,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 @@ -3075,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 @@ -3169,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 9c6835ca9a..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,1743 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -1993,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 @@ -2011,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 @@ -2023,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 @@ -2035,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 @@ -2047,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 393d6538a6..24080626c1 100644 --- a/tests/compiler/mutable-globals.debug.wat +++ b/tests/compiler/mutable-globals.debug.wat @@ -1,2720 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2726,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 @@ -2746,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 @@ -2758,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 @@ -2779,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 @@ -2873,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 b39f1074d1..64e4fb78a8 100644 --- a/tests/compiler/mutable-globals.release.wat +++ b/tests/compiler/mutable-globals.release.wat @@ -1,1754 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -1756,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 @@ -1804,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 @@ -1823,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 @@ -1834,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 68dd24728c..be3b4d4efb 100644 --- a/tests/compiler/overflow.debug.wat +++ b/tests/compiler/overflow.debug.wat @@ -1,2690 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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) @@ -2706,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 @@ -2736,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 @@ -2753,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 @@ -2773,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 @@ -2793,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 @@ -2810,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 @@ -2827,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 @@ -2845,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 @@ -2863,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 @@ -2878,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 @@ -2897,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 @@ -2914,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 @@ -2934,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 @@ -2954,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 @@ -2971,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 @@ -2988,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 @@ -3006,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 @@ -3024,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 @@ -3039,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 @@ -3059,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 @@ -3077,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 @@ -3098,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 @@ -3119,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 @@ -3137,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 @@ -3155,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 @@ -3174,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 @@ -3193,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 @@ -3209,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 @@ -3229,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 @@ -3247,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 @@ -3268,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 @@ -3289,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 @@ -3307,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 @@ -3325,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 @@ -3344,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 @@ -3363,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 @@ -3379,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 @@ -3407,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 @@ -3423,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 @@ -3437,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 @@ -3463,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 @@ -3478,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 @@ -3572,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 82af80875f..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,2635 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2985,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 @@ -3011,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 @@ -3026,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 @@ -3041,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 @@ -3056,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 @@ -3071,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 @@ -3084,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 @@ -3097,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 @@ -3110,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 @@ -3123,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 @@ -3136,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 @@ -3149,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 @@ -3162,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 @@ -3175,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 @@ -3188,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 @@ -3203,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 @@ -3297,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 e6bd515140..88ea05a110 100644 --- a/tests/compiler/portable-conversions.debug.wat +++ b/tests/compiler/portable-conversions.debug.wat @@ -1,2718 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2724,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 @@ -2736,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 @@ -2748,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 @@ -2759,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 @@ -2771,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 @@ -2783,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 @@ -2795,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 @@ -2805,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 @@ -2816,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 @@ -2827,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 @@ -2838,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 @@ -2849,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 @@ -2859,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 @@ -2870,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 @@ -2881,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 @@ -2891,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 @@ -2902,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 @@ -2913,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 @@ -2924,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 @@ -2936,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 @@ -2949,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 @@ -2962,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 @@ -2975,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 @@ -2987,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 @@ -3000,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 @@ -3013,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 @@ -3026,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 @@ -3036,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 @@ -3047,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 @@ -3058,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 @@ -3069,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 @@ -3080,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 @@ -3090,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 @@ -3101,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 @@ -3112,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 @@ -3122,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 @@ -3133,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 @@ -3144,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 @@ -3155,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 @@ -3167,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 @@ -3179,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 @@ -3196,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 @@ -3213,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 @@ -3225,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 @@ -3237,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 @@ -3248,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 @@ -3260,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 @@ -3272,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 @@ -3284,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 @@ -3296,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 @@ -3307,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 @@ -3322,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 @@ -3416,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 2efb25389e..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,3058 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -3652,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 fb6b9669b5..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,1867 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -1905,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 @@ -1929,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 @@ -1958,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 @@ -2028,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 ) @@ -2086,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 ) @@ -2133,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 ) @@ -2149,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 @@ -2207,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 @@ -2689,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 @@ -2792,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 4e2e6c91aa..5a2fd2a7cb 100644 --- a/tests/compiler/resolve-localortype.release.wat +++ b/tests/compiler/resolve-localortype.release.wat @@ -1,1952 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 126d7fc89b..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,2642 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2717,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 @@ -2962,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 01ba8db1bb..ada056bd30 100644 --- a/tests/compiler/resolve-nested.release.wat +++ b/tests/compiler/resolve-nested.release.wat @@ -1,1702 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -1711,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 7e1bd69e15..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,2665 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2710,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 @@ -2728,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 @@ -2746,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 @@ -2764,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 @@ -2782,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 @@ -2800,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 @@ -2822,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 @@ -2842,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 @@ -2862,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 @@ -2882,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 @@ -2902,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 @@ -2922,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 @@ -2942,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 @@ -2966,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 @@ -2983,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 @@ -3132,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 @@ -3151,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 @@ -3168,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 @@ -3185,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 @@ -3202,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 @@ -3219,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 @@ -3236,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 @@ -3252,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 @@ -3268,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 @@ -3284,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 @@ -3300,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 @@ -3320,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 @@ -3340,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 @@ -3358,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 @@ -3376,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 @@ -3392,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 @@ -3408,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 @@ -3424,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 @@ -3445,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 @@ -3539,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 af8e3ff051..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,2749 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2824,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 6360db8643..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,1883 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -1946,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 ea81a0fa5d..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,820 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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) @@ -1868,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 @@ -1914,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 @@ -1946,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 @@ -2187,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 @@ -2290,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 @@ -2361,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 @@ -2518,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 @@ -2633,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 @@ -2653,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 @@ -2691,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 @@ -2749,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 @@ -2843,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 a08e3c7485..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,606 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -1254,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 @@ -1281,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 @@ -1333,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 @@ -1467,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 @@ -1519,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 @@ -1541,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 @@ -1571,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 @@ -1597,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 @@ -1636,7 +827,7 @@ unreachable end end - local.get $0 + local.get $3 local.get $1 i32.const 16 i32.shl @@ -1645,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 @@ -1667,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 @@ -1711,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 @@ -1744,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 @@ -1802,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 @@ -1819,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 1769df0b93..4221de636e 100644 --- a/tests/compiler/rt/flags.debug.wat +++ b/tests/compiler/rt/flags.debug.wat @@ -1,6915 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 1d5352b8d5..e0bf5d19e2 100644 --- a/tests/compiler/rt/flags.release.wat +++ b/tests/compiler/rt/flags.release.wat @@ -1,1742 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -1744,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 @@ -2025,7 +279,7 @@ return end i32.const 0 - i32.const 3424 + i32.const 1168 i32.const 6 i32.const 3 call $~lib/builtins/abort @@ -2034,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 da5088be2f..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,2660 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2729,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 @@ -2823,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 fc797d8a93..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,2640 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2719,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) @@ -2832,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 @@ -3426,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 @@ -3468,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 @@ -3485,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 @@ -3501,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 @@ -3517,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 @@ -3621,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 @@ -3638,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 @@ -3654,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 @@ -4356,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 6f18b32459..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,2131 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -2195,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 @@ -2206,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 @@ -2227,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 @@ -2241,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 @@ -2268,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 @@ -2282,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 @@ -2293,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 @@ -2325,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 @@ -2339,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 @@ -2350,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 @@ -2378,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 @@ -2392,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 @@ -2403,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 @@ -2445,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 @@ -2459,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 @@ -2470,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 @@ -2508,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 @@ -2522,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 @@ -2533,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 @@ -2550,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/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/console.debug.wat b/tests/compiler/std/console.debug.wat index 69be587513..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,2642 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2944,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 @@ -3030,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 8ae6a0e7ad..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,1792 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -1875,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 @@ -1904,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 @@ -1933,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 @@ -1962,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 @@ -1986,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/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/hash.debug.wat b/tests/compiler/std/hash.debug.wat index 08ba932158..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,2629 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -3523,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 @@ -3609,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 4b91d0cee3..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,1667 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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) @@ -1736,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 @@ -1757,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 @@ -1922,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 0bbe0d798a..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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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) @@ -4225,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 @@ -4234,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 @@ -4246,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 @@ -4255,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 @@ -4745,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 @@ -4754,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 @@ -7034,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 @@ -8454,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 @@ -9106,7 +6436,7 @@ i64.sub i64.shl local.set $top - i32.const 7008 + i32.const 4640 local.get $idx i32.const 3 i32.shl @@ -9114,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 @@ -9767,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 @@ -10101,7 +7431,7 @@ i64.sub i64.shl local.set $top - i32.const 7008 + i32.const 4640 local.get $idx i32.const 3 i32.shl @@ -10109,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 @@ -10342,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 @@ -11577,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 @@ -11586,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 @@ -11601,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 @@ -11610,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 @@ -11832,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 @@ -11841,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 @@ -13094,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 @@ -13103,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 @@ -13112,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 @@ -13424,7 +10754,7 @@ i64.sub i64.shl local.set $top - i32.const 7008 + i32.const 4640 local.get $idx i32.const 3 i32.shl @@ -13432,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 @@ -14077,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 @@ -14086,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 @@ -14235,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 @@ -16322,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 @@ -17905,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 @@ -19671,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 @@ -19696,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 @@ -19710,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 @@ -19724,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 @@ -19738,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 @@ -19752,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 @@ -19766,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 @@ -19780,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 @@ -19795,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 @@ -19810,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 @@ -19825,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 @@ -19840,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 @@ -19855,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 @@ -19870,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 @@ -19885,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 @@ -19900,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 @@ -19915,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 @@ -19930,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 @@ -19945,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 @@ -19960,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 @@ -19975,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 @@ -19990,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 @@ -20005,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 @@ -20020,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 @@ -20035,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 @@ -20050,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 @@ -20065,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 @@ -20080,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 @@ -20095,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 @@ -20110,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 @@ -20127,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 @@ -20142,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 @@ -20157,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 @@ -20172,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 @@ -20189,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 @@ -20204,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 @@ -20219,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 @@ -20234,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 @@ -20251,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 @@ -20266,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 @@ -20281,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 @@ -20298,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 @@ -20315,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 @@ -20332,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 @@ -20347,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 @@ -20362,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 @@ -20377,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 @@ -20392,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 @@ -20407,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 @@ -20422,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 @@ -20437,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 @@ -20452,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 @@ -20467,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 @@ -20482,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 @@ -20497,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 @@ -20512,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 @@ -20527,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 @@ -20542,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 @@ -20557,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 @@ -20574,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 @@ -20589,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 @@ -20604,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 @@ -20619,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 @@ -20636,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 @@ -20651,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 @@ -20666,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 @@ -20681,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 @@ -20698,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 @@ -20713,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 @@ -20728,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 @@ -20745,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 @@ -20762,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 @@ -20779,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 @@ -20793,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 @@ -20807,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 @@ -20821,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 @@ -20835,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 @@ -20849,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 @@ -20863,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 @@ -20877,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 @@ -20891,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 @@ -20905,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 @@ -20919,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 @@ -20933,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 @@ -20947,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 @@ -20961,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 @@ -20975,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 @@ -20989,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 @@ -21004,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 @@ -21018,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 @@ -21032,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 @@ -21046,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 @@ -21060,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 @@ -21074,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 @@ -21088,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 @@ -21102,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 @@ -21116,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 @@ -21130,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 @@ -21144,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 @@ -21158,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 @@ -21172,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 @@ -21186,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 @@ -21200,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 @@ -21214,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 @@ -21228,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 @@ -21243,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 @@ -21257,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 @@ -21271,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 @@ -21285,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 @@ -21299,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 @@ -21313,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 @@ -21327,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 @@ -21341,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 @@ -21355,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 @@ -21369,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 @@ -21383,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 @@ -21397,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 @@ -21411,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 @@ -21425,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 @@ -21439,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 @@ -21453,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 @@ -21467,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 @@ -21481,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 @@ -21496,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 @@ -21510,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 @@ -21524,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 @@ -21538,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 @@ -21552,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 @@ -21566,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 @@ -21580,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 @@ -21594,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 @@ -21608,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 @@ -21622,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 @@ -21636,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 @@ -21650,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 @@ -21664,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 @@ -21678,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 @@ -21692,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 @@ -21706,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 @@ -21720,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 @@ -21734,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 @@ -21748,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 @@ -21762,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 @@ -21777,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 @@ -21791,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 @@ -21805,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 @@ -21819,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 @@ -21833,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 @@ -21847,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 @@ -21861,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 @@ -21875,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 @@ -21889,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 @@ -21903,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 @@ -21917,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 @@ -21931,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 @@ -21945,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 @@ -21959,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 @@ -21973,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 @@ -21987,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 @@ -22001,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 @@ -22015,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 @@ -22029,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 @@ -22043,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 @@ -22057,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 @@ -22071,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 @@ -22086,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 @@ -22100,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 @@ -22114,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 @@ -22128,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 @@ -22142,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 @@ -22156,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 @@ -22170,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 @@ -22184,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 @@ -22198,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 @@ -22212,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 @@ -22226,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 @@ -22240,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 @@ -22254,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 @@ -22268,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 @@ -22282,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 @@ -22296,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 @@ -22310,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 @@ -22324,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 @@ -22338,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 @@ -22352,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 @@ -22367,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 @@ -22381,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 @@ -22395,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 @@ -22409,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 @@ -22423,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 @@ -22437,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 @@ -22451,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 @@ -22465,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 @@ -22479,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 @@ -22493,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 @@ -22507,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 @@ -22521,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 @@ -22535,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 @@ -22549,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 @@ -22563,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 @@ -22577,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 @@ -22591,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 @@ -22605,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 @@ -22619,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 @@ -22634,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 @@ -22648,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 @@ -22662,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 @@ -22676,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 @@ -22690,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 @@ -22704,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 @@ -22718,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 @@ -22732,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 @@ -22746,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 @@ -22760,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 @@ -22774,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 @@ -22788,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 @@ -22802,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 @@ -22816,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 @@ -22830,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 @@ -22844,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 @@ -22858,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 @@ -22872,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 @@ -22886,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 @@ -22900,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 @@ -22915,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 @@ -22929,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 @@ -22943,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 @@ -22957,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 @@ -22971,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 @@ -22985,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 @@ -22999,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 @@ -23013,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 @@ -23027,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 @@ -23041,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 @@ -23055,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 @@ -23069,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 @@ -23083,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 @@ -23097,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 @@ -23111,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 @@ -23127,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 @@ -23141,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 @@ -23155,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 @@ -23169,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 @@ -23183,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 @@ -23197,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 @@ -23211,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 @@ -23225,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 @@ -23239,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 @@ -23253,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 @@ -23267,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 @@ -23281,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 @@ -23295,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 @@ -23309,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 @@ -23323,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 @@ -23339,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 @@ -23353,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 @@ -23367,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 @@ -23381,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 @@ -23395,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 @@ -23409,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 @@ -23423,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 @@ -23437,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 @@ -23451,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 @@ -23465,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 @@ -23479,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 @@ -23493,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 @@ -23507,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 @@ -23521,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 @@ -23535,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 @@ -23549,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 @@ -23563,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 @@ -23577,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 @@ -23592,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 @@ -23606,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 @@ -23620,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 @@ -23634,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 @@ -23648,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 @@ -23662,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 @@ -23676,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 @@ -23690,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 @@ -23704,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 @@ -23718,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 @@ -23732,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 @@ -23746,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 @@ -23760,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 @@ -23774,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 @@ -23788,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 @@ -23802,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 @@ -23816,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 @@ -23830,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 @@ -23845,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 @@ -23859,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 @@ -23873,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 @@ -23887,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 @@ -23901,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 @@ -23915,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 @@ -23929,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 @@ -23943,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 @@ -23957,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 @@ -23971,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 @@ -23985,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 @@ -23999,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 @@ -24013,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 @@ -24027,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 @@ -24042,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 @@ -24056,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 @@ -24070,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 @@ -24084,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 @@ -24099,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 @@ -24113,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 @@ -24127,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 @@ -24141,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 @@ -24155,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 @@ -24171,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 @@ -24187,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 @@ -24201,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 @@ -24215,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 @@ -24229,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 @@ -24243,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 @@ -24257,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 @@ -24271,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 @@ -24285,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 @@ -24299,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 @@ -24313,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 @@ -24327,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 @@ -24341,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 @@ -24355,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 @@ -24369,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 @@ -24384,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 @@ -24398,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 @@ -24412,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 @@ -24426,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 @@ -24441,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 @@ -24455,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 @@ -24469,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 @@ -24483,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 @@ -24497,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 @@ -24513,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 @@ -24529,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 @@ -24543,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 @@ -24558,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 @@ -24573,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 @@ -24588,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 @@ -24603,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 @@ -24618,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 @@ -24633,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 @@ -24648,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 @@ -24663,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 @@ -24678,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 @@ -24693,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 @@ -24708,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 @@ -24723,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 @@ -24738,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 @@ -24754,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 @@ -24769,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 @@ -24784,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 @@ -24799,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 @@ -24814,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 @@ -24829,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 @@ -24845,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 @@ -24860,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 @@ -24875,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 @@ -24890,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 @@ -24905,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 @@ -24920,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 @@ -24935,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 @@ -24950,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 @@ -24965,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 @@ -24981,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 @@ -24997,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 @@ -25012,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 @@ -25028,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 @@ -25043,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 @@ -25059,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 @@ -25075,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 @@ -25092,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 @@ -25109,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 @@ -25126,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 @@ -25143,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 @@ -25158,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 @@ -25173,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 @@ -25188,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 @@ -25203,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 @@ -25218,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 @@ -25233,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 @@ -25248,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 @@ -25263,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 @@ -25278,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 @@ -25293,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 @@ -25308,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 @@ -25323,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 @@ -25338,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 @@ -25353,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 @@ -25369,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 @@ -25384,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 @@ -25399,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 @@ -25414,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 @@ -25429,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 @@ -25444,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 @@ -25460,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 @@ -25475,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 @@ -25490,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 @@ -25505,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 @@ -25520,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 @@ -25535,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 @@ -25550,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 @@ -25565,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 @@ -25580,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 @@ -25596,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 @@ -25612,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 @@ -25627,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 @@ -25643,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 @@ -25658,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 @@ -25674,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 @@ -25690,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 @@ -25707,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 @@ -25724,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 @@ -25741,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 @@ -25755,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 @@ -25769,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 @@ -25783,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 @@ -25797,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 @@ -25811,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 @@ -25825,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 @@ -25839,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 @@ -25853,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 @@ -25867,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 @@ -25881,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 @@ -25895,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 @@ -25909,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 @@ -25925,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 @@ -25939,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 @@ -25953,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 @@ -25967,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 @@ -25981,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 @@ -25995,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 @@ -26009,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 @@ -26023,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 @@ -26037,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 @@ -26051,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 @@ -26065,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 @@ -26079,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 @@ -26093,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 @@ -26107,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 @@ -26121,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 @@ -26135,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 @@ -26149,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 @@ -26163,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 @@ -26177,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 @@ -26191,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 @@ -26207,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 @@ -26221,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 @@ -26235,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 @@ -26249,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 @@ -26263,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 @@ -26277,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 @@ -26291,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 @@ -26305,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 @@ -26319,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 @@ -26333,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 @@ -26347,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 @@ -26361,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 @@ -26375,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 @@ -26389,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 @@ -26403,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 @@ -26417,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 @@ -26431,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 @@ -26445,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 @@ -26459,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 @@ -26473,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 @@ -26489,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 @@ -26503,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 @@ -26517,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 @@ -26531,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 @@ -26545,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 @@ -26559,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 @@ -26573,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 @@ -26587,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 @@ -26601,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 @@ -26615,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 @@ -26629,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 @@ -26643,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 @@ -26657,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 @@ -26671,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 @@ -26685,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 @@ -26701,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 @@ -26715,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 @@ -26729,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 @@ -26743,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 @@ -26757,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 @@ -26771,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 @@ -26785,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 @@ -26799,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 @@ -26813,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 @@ -26827,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 @@ -26841,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 @@ -26855,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 @@ -26869,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 @@ -26883,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 @@ -26897,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 @@ -26913,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 @@ -26927,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 @@ -26941,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 @@ -26955,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 @@ -26969,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 @@ -26983,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 @@ -26997,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 @@ -27011,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 @@ -27025,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 @@ -27039,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 @@ -27053,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 @@ -27067,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 @@ -27081,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 @@ -27095,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 @@ -27109,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 @@ -27123,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 @@ -27137,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 @@ -27151,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 @@ -27165,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 @@ -27179,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 @@ -27193,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 @@ -27207,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 @@ -27221,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 @@ -27235,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 @@ -27249,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 @@ -27265,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 @@ -27279,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 @@ -27293,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 @@ -27307,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 @@ -27321,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 @@ -27335,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 @@ -27349,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 @@ -27363,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 @@ -27377,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 @@ -27391,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 @@ -27405,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 @@ -27419,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 @@ -27433,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 @@ -27447,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 @@ -27461,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 @@ -27477,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 @@ -27491,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 @@ -27505,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 @@ -27519,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 @@ -27533,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 @@ -27547,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 @@ -27561,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 @@ -27575,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 @@ -27589,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 @@ -27603,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 @@ -27617,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 @@ -27631,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 @@ -27645,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 @@ -27659,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 @@ -27673,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 @@ -27689,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 @@ -27703,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 @@ -27717,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 @@ -27731,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 @@ -27745,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 @@ -27759,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 @@ -27773,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 @@ -27787,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 @@ -27801,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 @@ -27815,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 @@ -27829,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 @@ -27843,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 @@ -27857,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 @@ -27871,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 @@ -27885,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 @@ -27899,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 @@ -27913,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 @@ -27927,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 @@ -27941,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 @@ -27955,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 @@ -27969,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 @@ -27983,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 @@ -27997,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 @@ -28011,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 @@ -28025,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 @@ -28039,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 @@ -28054,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 @@ -28068,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 @@ -28082,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 @@ -28096,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 @@ -28110,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 @@ -28124,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 @@ -28138,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 @@ -28152,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 @@ -28166,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 @@ -28180,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 @@ -28194,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 @@ -28208,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 @@ -28222,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 @@ -28236,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 @@ -28250,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 @@ -28264,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 @@ -28278,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 @@ -28292,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 @@ -28306,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 @@ -28320,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 @@ -28334,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 @@ -28348,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 @@ -28362,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 @@ -28376,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 @@ -28390,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 @@ -28404,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 @@ -28418,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 @@ -28432,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 @@ -28446,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 @@ -28460,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 @@ -28474,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 @@ -28488,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 @@ -28502,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 @@ -28516,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 @@ -28530,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 @@ -28544,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 @@ -28558,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 @@ -28572,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 @@ -28586,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 @@ -28600,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 @@ -28614,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 @@ -28628,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 @@ -28642,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 @@ -28656,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 @@ -28670,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 @@ -28684,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 @@ -28698,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 @@ -28712,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 @@ -28726,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 @@ -28740,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 @@ -28754,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 @@ -28768,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 @@ -28782,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 @@ -28796,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 @@ -28810,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 @@ -28824,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 @@ -28838,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 @@ -28852,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 @@ -28866,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 @@ -28880,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 @@ -28894,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 @@ -28908,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 @@ -28922,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 @@ -28936,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 @@ -28950,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 @@ -28964,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 @@ -28978,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 @@ -28992,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 @@ -29006,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 @@ -29020,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 @@ -29034,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 @@ -29048,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 @@ -29062,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 @@ -29076,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 @@ -29090,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 @@ -29104,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 @@ -29118,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 @@ -29132,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 @@ -29146,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 @@ -29160,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 @@ -29174,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 @@ -29188,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 @@ -29202,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 @@ -29216,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 @@ -29230,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 @@ -29244,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 @@ -29258,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 @@ -29272,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 @@ -29286,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 @@ -29300,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 @@ -29314,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 @@ -29328,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 @@ -29342,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 @@ -29356,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 @@ -29370,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 @@ -29384,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 @@ -29398,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 @@ -29412,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 @@ -29426,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 @@ -29440,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 @@ -29454,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 @@ -29468,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 @@ -29482,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 @@ -29496,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 @@ -29510,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 @@ -29524,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 @@ -29538,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 @@ -29552,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 @@ -29566,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 @@ -29580,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 @@ -29594,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 @@ -29608,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 @@ -29622,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 @@ -29640,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 @@ -29662,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 @@ -29680,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 @@ -29693,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 @@ -29706,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 @@ -29719,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 @@ -29732,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 @@ -29745,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 @@ -29758,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 @@ -29771,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 @@ -29784,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 @@ -29797,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 @@ -29810,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 @@ -29823,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 @@ -29836,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 @@ -29853,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 @@ -29870,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 @@ -29887,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 @@ -29904,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 @@ -29917,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 @@ -29934,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 @@ -29948,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 @@ -29962,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 @@ -29976,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 @@ -29990,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 @@ -30004,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 @@ -30018,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 @@ -30032,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 @@ -30046,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 @@ -30060,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 @@ -30074,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 @@ -30088,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 @@ -30102,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 @@ -30116,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 @@ -30131,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 @@ -30145,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 @@ -30159,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 @@ -30173,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 @@ -30187,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 @@ -30201,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 @@ -30215,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 @@ -30229,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 @@ -30243,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 @@ -30257,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 @@ -30271,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 @@ -30285,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 @@ -30299,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 @@ -30313,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 @@ -30327,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 @@ -30341,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 @@ -30355,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 @@ -30369,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 @@ -30383,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 @@ -30397,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 @@ -30411,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 @@ -30425,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 @@ -30439,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 @@ -30453,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 @@ -30467,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 @@ -30481,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 @@ -30495,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 @@ -30509,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 @@ -30523,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 @@ -30537,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 @@ -30551,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 @@ -30565,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 @@ -30579,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 @@ -30593,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 @@ -30607,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 @@ -30621,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 @@ -30635,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 @@ -30649,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 @@ -30663,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 @@ -30677,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 @@ -30691,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 @@ -30705,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 @@ -30719,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 @@ -30733,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 @@ -30747,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 @@ -30761,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 @@ -30775,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 @@ -30789,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 @@ -30803,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 @@ -30817,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 @@ -30831,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 @@ -30845,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 @@ -30859,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 @@ -30874,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 @@ -30888,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 @@ -30902,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 @@ -30916,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 @@ -30930,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 @@ -30944,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 @@ -30958,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 @@ -30972,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 @@ -30986,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 @@ -31000,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 @@ -31014,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 @@ -31028,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 @@ -31042,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 @@ -31056,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 @@ -31071,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 @@ -31085,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 @@ -31099,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 @@ -31113,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 @@ -31127,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 @@ -31141,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 @@ -31155,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 @@ -31169,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 @@ -31183,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 @@ -31197,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 @@ -31211,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 @@ -31225,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 @@ -31239,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 @@ -31253,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 @@ -31267,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 @@ -31282,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 @@ -31296,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 @@ -31310,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 @@ -31324,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 @@ -31338,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 @@ -31352,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 @@ -31366,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 @@ -31380,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 @@ -31394,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 @@ -31408,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 @@ -31422,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 @@ -31436,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 @@ -31450,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 @@ -31464,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 @@ -31478,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 @@ -31492,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 @@ -31506,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 @@ -31521,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 @@ -31535,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 @@ -31549,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 @@ -31563,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 @@ -31577,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 @@ -31591,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 @@ -31605,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 @@ -31620,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 @@ -31637,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 @@ -31654,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 @@ -31672,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 @@ -31690,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 @@ -31707,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 @@ -31726,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 @@ -31743,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 @@ -31760,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 @@ -31777,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 @@ -31794,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 @@ -31811,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 @@ -31828,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 @@ -31845,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 @@ -31862,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 @@ -31879,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 @@ -31896,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 @@ -31913,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 @@ -31930,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 @@ -31947,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 @@ -31964,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 @@ -31978,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 @@ -31992,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 @@ -32006,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 @@ -32020,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 @@ -32034,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 @@ -32048,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 @@ -32062,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 @@ -32076,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 @@ -32090,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 @@ -32104,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 @@ -32118,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 @@ -32132,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 @@ -32146,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 @@ -32160,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 @@ -32174,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 @@ -32189,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 @@ -32203,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 @@ -32217,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 @@ -32233,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 @@ -32249,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 @@ -32265,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 @@ -32279,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 @@ -32293,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 @@ -32307,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 @@ -32321,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 @@ -32335,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 @@ -32349,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 @@ -32363,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 @@ -32377,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 @@ -32391,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 @@ -32405,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 @@ -32419,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 @@ -32433,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 @@ -32447,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 @@ -32461,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 @@ -32475,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 @@ -32489,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 @@ -32503,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 @@ -32517,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 @@ -32532,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 @@ -32546,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 @@ -32562,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 @@ -32578,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 @@ -32592,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 @@ -32606,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 @@ -32620,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 @@ -32634,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 @@ -32648,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 @@ -32662,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 @@ -32676,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 @@ -32690,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 @@ -32704,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 @@ -32718,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 @@ -32732,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 @@ -32746,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 @@ -32760,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 @@ -32774,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 @@ -32788,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 @@ -32803,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 @@ -32817,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 @@ -32834,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 @@ -32851,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 @@ -32868,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 @@ -32885,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 @@ -32902,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 @@ -32919,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 @@ -32936,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 @@ -32953,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 @@ -32970,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 @@ -32987,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 @@ -33002,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 @@ -33017,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 @@ -33032,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 @@ -33047,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 @@ -33061,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 @@ -33076,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 @@ -33090,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 @@ -33107,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 @@ -33124,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 @@ -33140,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 @@ -33159,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 @@ -33175,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 @@ -33192,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 @@ -33209,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 @@ -33226,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 @@ -33243,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 @@ -33262,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 @@ -33278,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 @@ -33297,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 @@ -33313,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 @@ -33329,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 @@ -33345,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 @@ -33364,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 @@ -33382,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 @@ -33399,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 @@ -33419,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 @@ -33439,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 @@ -33459,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 @@ -33479,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 @@ -33499,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 @@ -33519,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 @@ -33539,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 @@ -33559,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 @@ -33579,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 @@ -33599,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 @@ -33613,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 @@ -33627,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 @@ -33641,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 @@ -33655,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 @@ -33669,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 @@ -33683,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 @@ -33697,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 @@ -33711,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 @@ -33725,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 @@ -33739,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 @@ -33753,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 @@ -33767,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 @@ -33783,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 @@ -33797,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 @@ -33811,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 @@ -33825,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 @@ -33839,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 @@ -33853,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 @@ -33867,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 @@ -33881,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 @@ -33895,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 @@ -33909,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 @@ -33923,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 @@ -33937,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 @@ -33951,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 @@ -33965,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 @@ -33979,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 @@ -33993,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 @@ -34007,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 @@ -34021,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 @@ -34035,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 @@ -34049,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 @@ -34063,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 @@ -34077,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 @@ -34091,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 @@ -34105,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 @@ -34119,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 @@ -34135,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 @@ -34149,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 @@ -34163,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 @@ -34177,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 @@ -34191,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 @@ -34205,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 @@ -34219,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 @@ -34233,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 @@ -34247,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 @@ -34261,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 @@ -34275,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 @@ -34289,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 @@ -34303,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 @@ -34318,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 @@ -34333,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 @@ -34348,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 @@ -34363,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 @@ -34378,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 @@ -34393,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 @@ -34408,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 @@ -34423,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 @@ -34438,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 @@ -34453,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 @@ -34468,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 @@ -34483,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 @@ -34498,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 @@ -34513,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 @@ -34528,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 @@ -34543,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 @@ -34558,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 @@ -34573,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 @@ -34588,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 @@ -34603,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 @@ -34618,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 @@ -34633,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 @@ -34648,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 @@ -34664,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 @@ -34680,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 @@ -34696,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 @@ -34712,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 @@ -34727,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 @@ -34742,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 @@ -34757,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 @@ -34772,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 @@ -34787,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 @@ -34802,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 @@ -34817,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 @@ -34832,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 @@ -34847,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 @@ -34862,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 @@ -34877,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 @@ -34892,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 @@ -34907,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 @@ -34922,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 @@ -34937,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 @@ -34952,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 @@ -34967,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 @@ -34982,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 @@ -34997,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 @@ -35012,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 @@ -35027,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 @@ -35042,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 @@ -35057,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 @@ -35072,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 @@ -35087,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 @@ -35102,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 @@ -35117,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 @@ -35133,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 @@ -35149,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 @@ -35165,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 @@ -35181,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 @@ -35196,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 @@ -35211,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 @@ -35225,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 @@ -35239,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 @@ -35253,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 @@ -35267,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 @@ -35281,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 @@ -35295,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 @@ -35309,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 @@ -35323,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 @@ -35337,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 @@ -35351,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 @@ -35366,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 @@ -35381,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 @@ -35395,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 @@ -35409,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 @@ -35423,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 @@ -35437,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 @@ -35452,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 @@ -35466,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 @@ -35481,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 @@ -35496,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 @@ -35510,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 @@ -35524,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 @@ -35538,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 @@ -35552,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 @@ -35567,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 @@ -35581,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 @@ -35596,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 @@ -35611,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 @@ -35625,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 @@ -35639,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 @@ -35653,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 @@ -35667,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 @@ -35682,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 @@ -35696,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 @@ -35710,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 @@ -35724,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 @@ -35738,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 @@ -35752,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 @@ -35766,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 @@ -35780,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 @@ -35794,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 @@ -35808,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 @@ -35822,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 @@ -35836,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 @@ -35851,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 @@ -35866,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 @@ -35880,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 @@ -35894,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 @@ -35908,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 @@ -35922,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 @@ -35937,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 @@ -35951,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 @@ -35965,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 @@ -35979,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 @@ -35993,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 @@ -36007,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 @@ -36021,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 @@ -36035,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 @@ -36049,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 @@ -36063,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 @@ -36077,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 @@ -36091,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 @@ -36106,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 @@ -36121,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 @@ -36135,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 @@ -36149,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 @@ -36163,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 @@ -36177,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 @@ -36192,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 @@ -36206,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 @@ -36220,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 @@ -36234,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 @@ -36248,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 @@ -36262,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 @@ -36276,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 @@ -36290,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 @@ -36304,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 @@ -36318,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 @@ -36332,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 @@ -36346,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 @@ -36360,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 @@ -36374,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 @@ -36388,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 @@ -36402,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 @@ -36417,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 @@ -36431,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 @@ -36446,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 @@ -36460,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 @@ -36474,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 @@ -36488,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 @@ -36502,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 @@ -36516,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 @@ -36530,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 @@ -36544,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 @@ -36558,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 @@ -36572,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 @@ -36586,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 @@ -36600,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 @@ -36614,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 @@ -36628,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 @@ -36642,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 @@ -36656,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 @@ -36671,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 @@ -36685,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 @@ -36700,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 @@ -36714,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 @@ -36730,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 @@ -36744,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 @@ -36758,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 @@ -36772,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 @@ -36786,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 @@ -36800,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 @@ -36814,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 @@ -36828,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 @@ -36842,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 @@ -36856,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 @@ -36870,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 @@ -36885,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 @@ -36900,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 @@ -36914,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 @@ -36928,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 @@ -36942,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 @@ -36956,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 @@ -36971,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 @@ -36985,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 @@ -36999,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 @@ -37013,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 @@ -37027,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 @@ -37041,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 @@ -37055,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 @@ -37069,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 @@ -37083,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 @@ -37097,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 @@ -37111,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 @@ -37125,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 @@ -37140,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 @@ -37155,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 @@ -37169,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 @@ -37183,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 @@ -37197,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 @@ -37211,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 @@ -37226,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 @@ -37240,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 @@ -37255,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 @@ -37270,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 @@ -37285,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 @@ -37300,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 @@ -37315,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 @@ -37330,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 @@ -37345,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 @@ -37360,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 @@ -37375,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 @@ -37390,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 @@ -37405,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 @@ -37420,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 @@ -37435,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 @@ -37450,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 @@ -37465,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 @@ -37480,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 @@ -37495,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 @@ -37511,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 @@ -37526,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 @@ -37541,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 @@ -37556,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 @@ -37571,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 @@ -37586,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 @@ -37601,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 @@ -37616,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 @@ -37631,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 @@ -37647,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 @@ -37662,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 @@ -37677,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 @@ -37692,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 @@ -37707,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 @@ -37723,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 @@ -37738,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 @@ -37753,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 @@ -37768,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 @@ -37783,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 @@ -37799,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 @@ -37814,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 @@ -37829,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 @@ -37844,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 @@ -37859,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 @@ -37875,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 @@ -37890,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 @@ -37905,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 @@ -37920,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 @@ -37936,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 @@ -37951,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 @@ -37966,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 @@ -37981,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 @@ -37996,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 @@ -38012,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 @@ -38028,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 @@ -38044,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 @@ -38059,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 @@ -38074,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 @@ -38089,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 @@ -38104,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 @@ -38119,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 @@ -38134,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 @@ -38150,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 @@ -38166,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 @@ -38182,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 @@ -38198,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 @@ -38216,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 @@ -38231,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 @@ -38246,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 @@ -38261,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 @@ -38276,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 @@ -38291,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 @@ -38306,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 @@ -38321,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 @@ -38336,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 @@ -38351,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 @@ -38366,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 @@ -38381,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 @@ -38396,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 @@ -38411,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 @@ -38426,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 @@ -38441,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 @@ -38456,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 @@ -38471,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 @@ -38486,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 @@ -38501,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 @@ -38516,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 @@ -38531,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 @@ -38547,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 @@ -38562,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 @@ -38577,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 @@ -38592,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 @@ -38607,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 @@ -38622,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 @@ -38637,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 @@ -38652,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 @@ -38667,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 @@ -38683,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 @@ -38698,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 @@ -38713,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 @@ -38728,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 @@ -38743,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 @@ -38759,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 @@ -38774,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 @@ -38789,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 @@ -38804,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 @@ -38819,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 @@ -38835,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 @@ -38850,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 @@ -38865,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 @@ -38880,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 @@ -38895,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 @@ -38911,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 @@ -38926,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 @@ -38941,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 @@ -38956,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 @@ -38972,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 @@ -38987,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 @@ -39002,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 @@ -39017,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 @@ -39032,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 @@ -39048,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 @@ -39064,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 @@ -39080,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 @@ -39095,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 @@ -39110,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 @@ -39125,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 @@ -39140,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 @@ -39155,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 @@ -39170,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 @@ -39186,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 @@ -39202,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 @@ -39218,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 @@ -39234,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 @@ -39252,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 @@ -39267,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 @@ -39282,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 @@ -39297,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 @@ -39312,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 @@ -39327,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 @@ -39342,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 @@ -39357,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 @@ -39372,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 @@ -39387,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 @@ -39402,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 @@ -39417,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 @@ -39432,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 @@ -39447,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 @@ -39462,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 @@ -39477,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 @@ -39492,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 @@ -39507,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 @@ -39522,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 @@ -39537,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 @@ -39552,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 @@ -39567,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 @@ -39584,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 @@ -39599,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 @@ -39614,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 @@ -39629,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 @@ -39644,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 @@ -39659,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 @@ -39674,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 @@ -39689,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 @@ -39704,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 @@ -39721,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 @@ -39736,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 @@ -39751,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 @@ -39766,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 @@ -39781,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 @@ -39798,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 @@ -39813,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 @@ -39828,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 @@ -39843,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 @@ -39858,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 @@ -39875,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 @@ -39890,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 @@ -39905,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 @@ -39920,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 @@ -39935,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 @@ -39952,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 @@ -39967,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 @@ -39982,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 @@ -39997,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 @@ -40014,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 @@ -40029,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 @@ -40044,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 @@ -40059,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 @@ -40074,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 @@ -40091,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 @@ -40108,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 @@ -40124,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 @@ -40139,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 @@ -40154,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 @@ -40169,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 @@ -40184,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 @@ -40199,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 @@ -40214,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 @@ -40231,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 @@ -40248,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 @@ -40265,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 @@ -40282,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 @@ -40300,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 @@ -40315,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 @@ -40330,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 @@ -40345,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 @@ -40360,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 @@ -40375,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 @@ -40390,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 @@ -40405,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 @@ -40420,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 @@ -40435,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 @@ -40450,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 @@ -40465,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 @@ -40480,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 @@ -40495,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 @@ -40510,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 @@ -40525,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 @@ -40540,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 @@ -40555,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 @@ -40570,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 @@ -40585,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 @@ -40600,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 @@ -40615,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 @@ -40632,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 @@ -40647,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 @@ -40662,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 @@ -40677,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 @@ -40692,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 @@ -40707,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 @@ -40722,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 @@ -40737,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 @@ -40752,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 @@ -40769,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 @@ -40784,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 @@ -40799,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 @@ -40814,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 @@ -40829,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 @@ -40846,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 @@ -40861,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 @@ -40876,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 @@ -40891,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 @@ -40906,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 @@ -40923,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 @@ -40938,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 @@ -40953,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 @@ -40968,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 @@ -40983,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 @@ -41000,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 @@ -41015,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 @@ -41030,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 @@ -41045,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 @@ -41062,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 @@ -41077,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 @@ -41092,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 @@ -41107,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 @@ -41122,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 @@ -41139,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 @@ -41156,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 @@ -41172,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 @@ -41187,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 @@ -41202,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 @@ -41217,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 @@ -41232,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 @@ -41247,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 @@ -41262,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 @@ -41279,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 @@ -41296,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 @@ -41313,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 @@ -41330,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 @@ -41348,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 @@ -41363,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 @@ -41378,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 @@ -41393,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 @@ -41408,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 @@ -41423,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 @@ -41438,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 @@ -41453,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 @@ -41468,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 @@ -41483,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 @@ -41498,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 @@ -41513,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 @@ -41528,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 @@ -41543,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 @@ -41558,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 @@ -41573,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 @@ -41588,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 @@ -41603,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 @@ -41618,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 @@ -41633,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 @@ -41648,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 @@ -41663,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 @@ -41678,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 @@ -41693,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 @@ -41708,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 @@ -41723,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 @@ -41739,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 @@ -41754,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 @@ -41769,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 @@ -41784,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 @@ -41799,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 @@ -41814,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 @@ -41829,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 @@ -41844,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 @@ -41859,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 @@ -41874,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 @@ -41889,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 @@ -41904,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 @@ -41919,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 @@ -41935,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 @@ -41950,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 @@ -41965,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 @@ -41980,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 @@ -41995,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 @@ -42011,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 @@ -42026,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 @@ -42041,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 @@ -42056,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 @@ -42071,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 @@ -42087,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 @@ -42102,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 @@ -42117,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 @@ -42132,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 @@ -42147,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 @@ -42163,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 @@ -42178,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 @@ -42193,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 @@ -42208,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 @@ -42224,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 @@ -42239,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 @@ -42254,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 @@ -42269,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 @@ -42284,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 @@ -42300,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 @@ -42316,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 @@ -42332,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 @@ -42347,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 @@ -42362,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 @@ -42377,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 @@ -42392,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 @@ -42407,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 @@ -42422,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 @@ -42438,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 @@ -42454,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 @@ -42470,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 @@ -42486,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 @@ -42503,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 @@ -42518,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 @@ -42533,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 @@ -42548,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 @@ -42563,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 @@ -42580,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 @@ -42597,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 @@ -42614,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 @@ -42631,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 @@ -42648,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 @@ -42665,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 @@ -42682,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 @@ -42699,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 @@ -42716,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 @@ -42733,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 @@ -42750,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 @@ -42767,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 @@ -42784,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 @@ -42801,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 @@ -42818,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 @@ -42835,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 @@ -42853,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 @@ -42871,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 @@ -42889,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 @@ -42907,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 @@ -42925,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 @@ -42943,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 @@ -42961,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 @@ -42979,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 @@ -42997,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 @@ -43015,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 @@ -43033,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 @@ -43051,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 @@ -43069,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 @@ -43087,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 @@ -43105,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 @@ -43123,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 @@ -43141,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 @@ -43159,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 @@ -43175,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 @@ -43191,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 @@ -43207,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 @@ -43223,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 @@ -43239,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 @@ -43255,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 @@ -43271,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 @@ -43287,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 @@ -43305,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 @@ -43323,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 @@ -43341,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 @@ -43359,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 @@ -43377,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 @@ -43395,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 @@ -43413,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 @@ -43431,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 @@ -43449,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 @@ -43467,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 @@ -43485,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 @@ -43503,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 @@ -43521,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 @@ -43539,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 @@ -43557,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 @@ -43575,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 @@ -43593,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 @@ -43611,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 @@ -43629,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 @@ -43647,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 @@ -43662,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 @@ -43677,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 @@ -43692,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 @@ -43707,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 @@ -43722,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 @@ -43737,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 @@ -43752,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 @@ -43767,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 @@ -43782,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 @@ -43797,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 @@ -43812,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 @@ -43827,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 @@ -43842,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 @@ -43857,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 @@ -43872,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 @@ -43887,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 @@ -43902,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 @@ -43917,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 @@ -43932,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 @@ -43947,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 @@ -43962,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 @@ -43978,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 @@ -43993,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 @@ -44008,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 @@ -44023,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 @@ -44038,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 @@ -44053,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 @@ -44068,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 @@ -44083,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 @@ -44098,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 @@ -44113,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 @@ -44128,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 @@ -44143,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 @@ -44158,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 @@ -44174,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 @@ -44189,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 @@ -44204,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 @@ -44219,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 @@ -44234,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 @@ -44250,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 @@ -44265,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 @@ -44280,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 @@ -44295,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 @@ -44310,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 @@ -44326,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 @@ -44341,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 @@ -44356,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 @@ -44371,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 @@ -44386,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 @@ -44402,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 @@ -44417,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 @@ -44432,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 @@ -44447,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 @@ -44463,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 @@ -44478,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 @@ -44493,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 @@ -44508,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 @@ -44523,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 @@ -44539,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 @@ -44555,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 @@ -44571,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 @@ -44586,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 @@ -44601,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 @@ -44616,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 @@ -44631,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 @@ -44646,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 @@ -44661,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 @@ -44677,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 @@ -44693,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 @@ -44709,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 @@ -44725,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 @@ -44742,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 @@ -44757,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 @@ -44772,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 @@ -44787,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 @@ -44802,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 @@ -44817,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 @@ -44832,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 @@ -44847,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 @@ -44862,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 @@ -44877,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 @@ -44892,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 @@ -44907,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 @@ -44922,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 @@ -44937,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 @@ -44952,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 @@ -44967,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 @@ -44982,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 @@ -44997,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 @@ -45012,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 @@ -45027,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 @@ -45042,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 @@ -45057,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 @@ -45072,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 @@ -45087,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 @@ -45102,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 @@ -45117,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 @@ -45132,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 @@ -45147,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 @@ -45163,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 @@ -45178,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 @@ -45193,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 @@ -45208,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 @@ -45223,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 @@ -45238,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 @@ -45253,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 @@ -45268,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 @@ -45283,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 @@ -45298,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 @@ -45314,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 @@ -45329,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 @@ -45345,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 @@ -45360,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 @@ -45376,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 @@ -45391,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 @@ -45406,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 @@ -45422,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 @@ -45437,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 @@ -45452,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 @@ -45467,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 @@ -45482,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 @@ -45497,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 @@ -45513,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 @@ -45528,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 @@ -45543,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 @@ -45558,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 @@ -45573,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 @@ -45588,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 @@ -45604,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 @@ -45619,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 @@ -45634,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 @@ -45649,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 @@ -45664,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 @@ -45679,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 @@ -45694,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 @@ -45709,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 @@ -45725,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 @@ -45740,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 @@ -45755,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 @@ -45770,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 @@ -45785,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 @@ -45800,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 @@ -45815,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 @@ -45830,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 @@ -45845,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 @@ -45860,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 @@ -45876,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 @@ -45891,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 @@ -45906,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 @@ -45922,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 @@ -45937,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 @@ -45952,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 @@ -45968,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 @@ -45983,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 @@ -45998,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 @@ -46013,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 @@ -46029,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 @@ -46044,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 @@ -46059,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 @@ -46074,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 @@ -46089,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 @@ -46104,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 @@ -46119,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 @@ -46134,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 @@ -46150,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 @@ -46166,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 @@ -46183,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 @@ -46200,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 @@ -46216,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 @@ -46233,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 @@ -46249,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 @@ -46265,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 @@ -46281,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 @@ -46297,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 @@ -46312,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 @@ -46327,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 @@ -46342,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 @@ -46357,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 @@ -46371,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 @@ -46385,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 @@ -46399,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 @@ -46413,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 @@ -46427,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 @@ -46441,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 @@ -46456,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 @@ -46470,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 @@ -46486,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 @@ -46502,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 @@ -46516,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 @@ -46530,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 @@ -46546,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 @@ -46561,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 @@ -46575,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 @@ -46590,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 @@ -46604,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 @@ -46618,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 @@ -46632,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 @@ -46648,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 @@ -46665,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 @@ -46680,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 @@ -46694,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 @@ -46708,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 @@ -46722,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 @@ -46736,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 @@ -46750,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 @@ -46764,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 @@ -46779,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 @@ -46794,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 @@ -46808,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 @@ -46822,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 @@ -46837,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 @@ -46851,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 @@ -46865,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 @@ -46879,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 @@ -46894,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 @@ -46909,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 @@ -46924,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 @@ -46939,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 @@ -46954,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 @@ -46969,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 @@ -46984,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 @@ -46999,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 @@ -47014,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 @@ -47029,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 @@ -47044,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 @@ -47059,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 @@ -47074,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 @@ -47089,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 @@ -47104,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 @@ -47119,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 @@ -47134,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 @@ -47149,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 @@ -47164,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 @@ -47179,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 @@ -47194,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 @@ -47209,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 @@ -47224,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 @@ -47239,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 @@ -47254,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 @@ -47270,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 @@ -47285,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 @@ -47300,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 @@ -47315,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 @@ -47330,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 @@ -47345,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 @@ -47360,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 @@ -47375,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 @@ -47390,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 @@ -47405,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 @@ -47421,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 @@ -47436,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 @@ -47452,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 @@ -47467,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 @@ -47483,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 @@ -47498,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 @@ -47513,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 @@ -47529,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 @@ -47544,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 @@ -47559,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 @@ -47574,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 @@ -47589,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 @@ -47604,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 @@ -47620,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 @@ -47635,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 @@ -47650,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 @@ -47665,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 @@ -47680,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 @@ -47695,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 @@ -47711,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 @@ -47726,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 @@ -47741,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 @@ -47756,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 @@ -47771,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 @@ -47786,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 @@ -47801,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 @@ -47816,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 @@ -47832,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 @@ -47847,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 @@ -47862,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 @@ -47877,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 @@ -47892,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 @@ -47907,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 @@ -47922,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 @@ -47937,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 @@ -47952,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 @@ -47967,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 @@ -47983,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 @@ -47998,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 @@ -48013,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 @@ -48029,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 @@ -48044,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 @@ -48059,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 @@ -48075,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 @@ -48090,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 @@ -48105,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 @@ -48120,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 @@ -48136,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 @@ -48151,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 @@ -48166,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 @@ -48181,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 @@ -48196,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 @@ -48211,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 @@ -48226,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 @@ -48241,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 @@ -48257,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 @@ -48273,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 @@ -48290,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 @@ -48307,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 @@ -48323,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 @@ -48340,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 @@ -48356,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 @@ -48372,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 @@ -48388,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 @@ -48404,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 @@ -48419,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 @@ -48434,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 @@ -48449,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 @@ -48464,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 @@ -48479,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 @@ -48494,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 @@ -48511,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 @@ -48528,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 @@ -48545,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 @@ -48562,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 @@ -48578,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 @@ -48594,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 @@ -48610,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 @@ -48626,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 @@ -48641,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 @@ -48657,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 @@ -48676,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 @@ -48694,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 @@ -48712,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 @@ -48730,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 @@ -48748,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 @@ -48767,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 @@ -48786,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 @@ -48805,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 @@ -48824,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 @@ -48843,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 @@ -48862,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 @@ -48881,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 @@ -48900,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 @@ -48919,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 @@ -48938,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 @@ -48953,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 @@ -48968,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 @@ -48983,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 @@ -48999,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 @@ -49015,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 @@ -49031,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 @@ -49046,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 @@ -49061,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 @@ -49076,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 @@ -49093,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 @@ -49108,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 @@ -49123,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 @@ -49139,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 @@ -49154,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 @@ -49169,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 @@ -49184,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 @@ -49199,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 @@ -49215,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 @@ -49230,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 @@ -49246,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 @@ -49262,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 @@ -49279,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 @@ -49295,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 @@ -49312,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 @@ -49329,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 @@ -49345,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 @@ -49361,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 @@ -49376,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 @@ -49392,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 @@ -49408,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 @@ -49423,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 @@ -49439,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 @@ -49455,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 @@ -49471,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 @@ -49487,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 @@ -49503,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 @@ -49518,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 @@ -49534,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 @@ -49550,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 @@ -49567,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 @@ -49583,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 @@ -49599,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 @@ -49616,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 @@ -49633,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 @@ -49650,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 @@ -49667,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 @@ -49685,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 @@ -49702,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 @@ -49719,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 @@ -49736,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 @@ -49753,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 @@ -49769,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 @@ -49786,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 @@ -49806,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 @@ -49822,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 @@ -49839,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 @@ -49856,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 @@ -49873,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 @@ -49890,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 @@ -49907,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 @@ -49924,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 @@ -49941,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 @@ -49958,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 @@ -49975,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 @@ -49992,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 @@ -50009,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 @@ -50026,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 @@ -50043,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 @@ -50060,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 @@ -50077,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 @@ -50094,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 @@ -50111,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 @@ -50128,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 @@ -50143,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 @@ -50158,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 @@ -50175,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 @@ -50192,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 @@ -50208,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 @@ -50225,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 @@ -50242,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 @@ -50259,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 @@ -50276,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 @@ -50292,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 @@ -50309,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 @@ -50328,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 @@ -50347,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 @@ -50366,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 @@ -50384,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 @@ -50403,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 @@ -50422,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 @@ -50441,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 @@ -50460,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 @@ -50478,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 @@ -50498,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 @@ -50517,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 @@ -50536,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 @@ -50554,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 @@ -50574,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 @@ -50593,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 @@ -50625,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 @@ -50666,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 @@ -50687,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 @@ -50701,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 @@ -50715,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 @@ -50729,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 @@ -50743,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 @@ -50757,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 @@ -50771,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 @@ -50785,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 @@ -50799,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 @@ -50813,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 @@ -50827,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 @@ -50841,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 @@ -50857,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 @@ -50871,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 @@ -50885,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 @@ -50899,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 @@ -50913,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 @@ -50927,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 @@ -50941,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 @@ -50955,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 @@ -50969,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 @@ -50983,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 @@ -50997,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 @@ -51011,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 @@ -51025,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 @@ -51039,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 @@ -51053,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 @@ -51066,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 @@ -51079,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 @@ -51092,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 @@ -51105,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 @@ -51118,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 @@ -51132,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 @@ -51146,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 @@ -51160,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 @@ -51174,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 @@ -51188,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 @@ -51202,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 @@ -51216,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 @@ -51230,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 @@ -51244,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 @@ -51258,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 @@ -51272,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 @@ -51286,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 @@ -51302,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 @@ -51316,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 @@ -51330,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 @@ -51344,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 @@ -51358,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 @@ -51372,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 @@ -51386,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 @@ -51400,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 @@ -51414,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 @@ -51428,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 @@ -51442,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 @@ -51456,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 @@ -51470,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 @@ -51484,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 @@ -51498,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 @@ -51512,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 @@ -51526,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 @@ -51540,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 @@ -51554,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 @@ -51568,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 @@ -51582,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 @@ -51596,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 @@ -51611,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 @@ -51625,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 @@ -51639,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 @@ -51653,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 @@ -51667,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 @@ -51681,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 @@ -51695,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 @@ -51709,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 @@ -51723,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 @@ -51738,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 @@ -51752,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 @@ -52011,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 @@ -52026,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 @@ -52041,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 @@ -52056,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 @@ -52071,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 @@ -52086,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 @@ -52101,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 @@ -52116,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 @@ -52131,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 @@ -52146,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 @@ -52161,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 @@ -52176,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 @@ -52191,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 @@ -52206,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 @@ -52221,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 @@ -52236,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 @@ -52251,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 @@ -52266,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 @@ -52281,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 @@ -52296,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 @@ -52311,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 @@ -52327,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 @@ -52342,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 @@ -52357,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 @@ -52372,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 @@ -52387,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 @@ -52402,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 @@ -52417,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 @@ -52432,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 @@ -52447,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 @@ -52462,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 @@ -52477,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 @@ -52492,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 @@ -52507,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 @@ -52523,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 @@ -52538,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 @@ -52553,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 @@ -52568,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 @@ -52583,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 @@ -52599,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 @@ -52614,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 @@ -52629,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 @@ -52644,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 @@ -52659,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 @@ -52675,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 @@ -52690,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 @@ -52705,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 @@ -52720,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 @@ -52735,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 @@ -52751,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 @@ -52766,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 @@ -52781,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 @@ -52796,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 @@ -52812,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 @@ -52827,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 @@ -52842,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 @@ -52857,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 @@ -52872,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 @@ -52888,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 @@ -52904,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 @@ -52920,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 @@ -52935,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 @@ -52950,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 @@ -52965,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 @@ -52980,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 @@ -52995,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 @@ -53010,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 @@ -53026,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 @@ -53042,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 @@ -53058,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 @@ -53074,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 @@ -53091,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 @@ -53106,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 @@ -53121,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 @@ -53136,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 @@ -53151,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 @@ -53166,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 @@ -53181,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 @@ -53196,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 @@ -53211,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 @@ -53226,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 @@ -53241,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 @@ -53256,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 @@ -53271,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 @@ -53286,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 @@ -53301,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 @@ -53316,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 @@ -53331,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 @@ -53346,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 @@ -53361,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 @@ -53376,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 @@ -53391,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 @@ -53406,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 @@ -53421,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 @@ -53436,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 @@ -53451,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 @@ -53466,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 @@ -53481,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 @@ -53497,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 @@ -53512,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 @@ -53527,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 @@ -53542,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 @@ -53557,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 @@ -53572,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 @@ -53587,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 @@ -53602,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 @@ -53617,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 @@ -53632,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 @@ -53647,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 @@ -53662,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 @@ -53677,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 @@ -53693,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 @@ -53708,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 @@ -53723,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 @@ -53738,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 @@ -53753,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 @@ -53769,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 @@ -53784,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 @@ -53799,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 @@ -53814,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 @@ -53829,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 @@ -53845,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 @@ -53860,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 @@ -53875,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 @@ -53890,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 @@ -53905,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 @@ -53921,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 @@ -53936,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 @@ -53951,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 @@ -53966,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 @@ -53982,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 @@ -53997,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 @@ -54012,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 @@ -54027,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 @@ -54042,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 @@ -54058,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 @@ -54074,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 @@ -54090,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 @@ -54105,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 @@ -54120,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 @@ -54135,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 @@ -54150,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 @@ -54165,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 @@ -54180,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 @@ -54196,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 @@ -54212,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 @@ -54228,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 @@ -54244,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 @@ -54261,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 @@ -54276,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 @@ -54291,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 @@ -54306,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 @@ -54321,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 @@ -54336,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 @@ -54350,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 @@ -54364,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 @@ -54378,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 @@ -54392,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 @@ -54406,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 @@ -54420,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 @@ -54434,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 @@ -54448,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 @@ -54462,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 @@ -54476,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 @@ -54490,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 @@ -54504,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 @@ -54518,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 @@ -54532,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 @@ -54548,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 @@ -54564,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 @@ -54578,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 @@ -54592,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 @@ -54606,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 @@ -54620,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 @@ -54634,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 @@ -54648,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 @@ -54662,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 @@ -54676,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 @@ -54690,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 @@ -54704,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 @@ -54718,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 @@ -54732,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 @@ -54746,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 @@ -54760,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 @@ -54774,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 @@ -54788,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 @@ -54802,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 @@ -54816,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 @@ -54830,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 @@ -54846,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 @@ -54862,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 @@ -54878,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 @@ -54894,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 @@ -54910,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 @@ -54926,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 @@ -54942,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 @@ -54958,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 @@ -54974,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 @@ -54990,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 @@ -55006,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 @@ -55022,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 @@ -55036,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 @@ -55050,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 @@ -55064,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 @@ -55079,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 @@ -55093,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 @@ -55111,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 @@ -55133,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 @@ -55146,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 @@ -55159,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 @@ -55172,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 @@ -55185,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 @@ -55198,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 @@ -55211,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 @@ -55226,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 @@ -55242,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 @@ -55255,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 @@ -55270,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 @@ -55287,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 @@ -55304,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 @@ -55321,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 @@ -55338,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 @@ -55355,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 @@ -55368,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 @@ -55382,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 @@ -55396,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 @@ -55410,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 @@ -55424,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 @@ -55438,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 @@ -55452,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 @@ -55466,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 @@ -55480,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 @@ -55494,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 @@ -55508,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 @@ -55522,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 @@ -55536,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 @@ -55550,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 @@ -55564,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 @@ -55579,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 @@ -55593,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 @@ -55607,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 @@ -55621,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 @@ -55635,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 @@ -55649,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 @@ -55665,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 @@ -55681,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 @@ -55695,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 @@ -55709,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 @@ -55723,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 @@ -55737,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 @@ -55751,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 @@ -55765,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 @@ -55779,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 @@ -55793,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 @@ -55807,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 @@ -55821,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 @@ -55835,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 @@ -55849,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 @@ -55863,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 @@ -55877,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 @@ -55891,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 @@ -55905,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 @@ -55919,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 @@ -55933,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 @@ -55947,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 @@ -55961,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 @@ -55977,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 @@ -55993,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 @@ -56009,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 @@ -56025,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 @@ -56041,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 @@ -56057,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 @@ -56073,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 @@ -56089,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 @@ -56105,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 @@ -56121,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 @@ -56137,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 @@ -56153,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 @@ -56167,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 @@ -56181,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 @@ -56195,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 @@ -56209,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 @@ -56223,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 @@ -56237,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 @@ -56251,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 @@ -56265,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 @@ -56279,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 @@ -56293,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 @@ -56307,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 @@ -56321,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 @@ -56335,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 @@ -56350,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 @@ -56364,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 @@ -56378,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 @@ -56392,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 @@ -56406,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 @@ -56420,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 @@ -56434,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 @@ -56448,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 @@ -56462,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 @@ -56476,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 @@ -56490,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 @@ -56504,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 @@ -56518,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 @@ -56532,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 @@ -56548,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 @@ -56562,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 @@ -56576,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 @@ -56590,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 @@ -56604,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 @@ -56618,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 @@ -56632,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 @@ -56646,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 @@ -56660,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 @@ -56674,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 @@ -56688,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 @@ -56702,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 @@ -56716,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 @@ -56730,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 @@ -56744,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 @@ -56760,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 @@ -56774,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 @@ -56788,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 @@ -56802,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 @@ -56816,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 @@ -56830,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 @@ -56844,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 @@ -56858,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 @@ -56872,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 @@ -56886,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 @@ -56900,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 @@ -56914,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 @@ -56928,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 @@ -56942,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 @@ -56957,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 @@ -56971,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 @@ -56985,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 @@ -56999,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 @@ -57013,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 @@ -57027,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 @@ -57041,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 @@ -57055,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 @@ -57069,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 @@ -57083,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 @@ -57097,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 @@ -57111,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 @@ -57125,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 @@ -57139,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 @@ -57153,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 @@ -57167,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 @@ -57181,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 @@ -57195,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 @@ -57209,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 @@ -57223,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 @@ -57237,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 @@ -57251,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 @@ -57265,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 @@ -57279,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 @@ -57293,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 @@ -57307,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 @@ -57321,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 @@ -57335,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 @@ -57349,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 @@ -57363,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 @@ -57377,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 @@ -57391,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 @@ -57405,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 @@ -57419,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 @@ -57433,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 @@ -57447,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 @@ -57461,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 @@ -57475,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 @@ -57489,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 @@ -57503,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 @@ -57517,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 @@ -57531,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 @@ -57545,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 @@ -57559,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 @@ -57573,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 @@ -57587,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 @@ -57601,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 @@ -57615,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 @@ -57629,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 @@ -57643,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 @@ -57657,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 @@ -57671,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 @@ -57685,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 @@ -57699,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 @@ -57713,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 @@ -57727,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 @@ -57741,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 @@ -57755,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 @@ -57769,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 @@ -57783,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 @@ -57797,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 @@ -57811,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 @@ -57825,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 @@ -57839,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 @@ -57853,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 @@ -57867,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 @@ -57881,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 @@ -57895,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 @@ -57909,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 @@ -57923,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 @@ -57937,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 @@ -57951,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 @@ -57965,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 @@ -57979,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 @@ -57993,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 @@ -58007,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 @@ -58021,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 @@ -58035,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 @@ -58049,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 @@ -58063,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 @@ -58077,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 @@ -58091,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 @@ -58105,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 @@ -58119,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 @@ -58134,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 @@ -58148,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 @@ -58162,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 @@ -58176,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 @@ -58190,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 @@ -58204,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 @@ -58218,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 @@ -58232,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 @@ -58246,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 @@ -58260,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 @@ -58274,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 @@ -58288,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 @@ -58302,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 @@ -58316,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 @@ -58330,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 @@ -58344,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 @@ -58358,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 @@ -58372,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 @@ -58386,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 @@ -58400,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 @@ -58414,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 @@ -58428,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 @@ -58442,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 @@ -58456,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 @@ -58470,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 @@ -58484,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 @@ -58498,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 @@ -58512,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 @@ -58526,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 @@ -58540,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 @@ -58554,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 @@ -58568,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 @@ -58582,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 @@ -58596,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 @@ -58612,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 @@ -58628,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 @@ -58642,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 @@ -58656,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 @@ -58670,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 @@ -58684,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 @@ -58698,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 @@ -58712,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 @@ -58726,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 @@ -58740,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 @@ -58754,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 @@ -58768,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 @@ -58782,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 @@ -58796,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 @@ -58810,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 @@ -58824,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 @@ -58838,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 @@ -58852,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 @@ -58866,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 @@ -58880,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 @@ -58894,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 @@ -58908,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 @@ -58924,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 @@ -58940,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 @@ -58956,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 @@ -58972,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 @@ -58988,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 @@ -59004,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 @@ -59020,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 @@ -59036,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 @@ -59052,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 @@ -59068,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 @@ -59084,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 @@ -59100,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 @@ -59114,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 @@ -59128,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 @@ -59146,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 @@ -59164,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 @@ -59178,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 @@ -59192,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 @@ -59206,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 @@ -59224,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 @@ -59238,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 @@ -59252,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 @@ -59274,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 @@ -59296,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 @@ -59318,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 @@ -59340,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 @@ -59354,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 @@ -59370,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 @@ -59384,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 @@ -59398,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 @@ -59412,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 @@ -59427,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 @@ -59441,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 @@ -59455,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 @@ -59469,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 @@ -59483,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 @@ -59497,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 @@ -59511,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 @@ -59525,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 @@ -59539,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 @@ -59553,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 @@ -59567,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 @@ -59581,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 @@ -59595,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 @@ -59609,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 @@ -59623,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 @@ -59638,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 @@ -59652,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 @@ -59666,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 @@ -59680,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 @@ -59694,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 @@ -59708,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 @@ -59724,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 @@ -59740,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 @@ -59754,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 @@ -59768,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 @@ -59782,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 @@ -59796,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 @@ -59810,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 @@ -59824,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 @@ -59838,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 @@ -59852,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 @@ -59866,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 @@ -59880,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 @@ -59894,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 @@ -59908,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 @@ -59922,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 @@ -59936,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 @@ -59950,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 @@ -59964,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 @@ -59978,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 @@ -59992,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 @@ -60008,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 @@ -60024,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 @@ -60040,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 @@ -60056,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 @@ -60072,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 @@ -60088,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 @@ -60104,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 @@ -60120,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 @@ -60136,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 @@ -60152,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 @@ -60168,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 @@ -60184,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 @@ -60198,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 @@ -60212,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 @@ -60226,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 @@ -60240,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 @@ -60254,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 @@ -60268,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 @@ -60282,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 @@ -60296,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 @@ -60310,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 @@ -60324,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 @@ -60338,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 @@ -60352,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 @@ -60366,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 @@ -60381,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 @@ -60395,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 @@ -60409,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 @@ -60423,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 @@ -60437,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 @@ -60451,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 @@ -60465,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 @@ -60479,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 @@ -60493,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 @@ -60507,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 @@ -60521,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 @@ -60535,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 @@ -60549,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 @@ -60563,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 @@ -60577,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 @@ -60592,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 @@ -60606,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 @@ -60620,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 @@ -60634,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 @@ -60648,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 @@ -60662,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 @@ -60676,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 @@ -60690,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 @@ -60704,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 @@ -60718,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 @@ -60732,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 @@ -60746,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 @@ -60760,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 @@ -60774,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 @@ -60790,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 @@ -60804,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 @@ -60818,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 @@ -60832,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 @@ -60846,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 @@ -60860,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 @@ -60874,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 @@ -60888,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 @@ -60902,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 @@ -60916,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 @@ -60930,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 @@ -60944,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 @@ -60958,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 @@ -60972,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 @@ -60986,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 @@ -61000,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 @@ -61014,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 @@ -61028,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 @@ -61042,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 @@ -61056,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 @@ -61070,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 @@ -61084,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 @@ -61098,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 @@ -61112,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 @@ -61126,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 @@ -61142,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 @@ -61156,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 @@ -61170,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 @@ -61184,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 @@ -61198,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 @@ -61212,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 @@ -61226,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 @@ -61240,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 @@ -61254,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 @@ -61268,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 @@ -61282,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 @@ -61296,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 @@ -61310,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 @@ -61404,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 @@ -61418,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 @@ -61432,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 @@ -61446,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 @@ -61460,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 @@ -61474,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 @@ -61488,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 @@ -61502,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 @@ -61516,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 @@ -61530,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 @@ -61544,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 @@ -61558,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 @@ -61571,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 @@ -61584,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 @@ -61597,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 @@ -61610,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 @@ -61623,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 @@ -61636,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 @@ -61649,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 @@ -61662,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 @@ -61675,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 @@ -61688,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 @@ -61701,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 @@ -61715,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 @@ -61728,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 @@ -61741,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 @@ -61755,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 @@ -61768,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 @@ -61782,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 @@ -61796,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 @@ -61810,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 @@ -61824,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 @@ -61838,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 @@ -61852,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 @@ -61866,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 @@ -61880,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 @@ -61894,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 @@ -61908,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 @@ -61922,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 @@ -61936,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 @@ -61950,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 @@ -61964,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 @@ -61978,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 @@ -61992,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 @@ -62006,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 @@ -62020,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 @@ -62034,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 @@ -62048,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 @@ -62062,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 @@ -62076,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 @@ -62090,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 @@ -62104,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 @@ -62118,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 @@ -62132,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 @@ -62146,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 @@ -62160,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 @@ -62174,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 @@ -62206,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 @@ -62220,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 @@ -62234,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 @@ -62248,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 @@ -62262,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 @@ -62276,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 @@ -62290,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 @@ -62304,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 @@ -62336,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 @@ -62350,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 @@ -62364,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 @@ -62396,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 @@ -62411,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 @@ -62426,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 @@ -62442,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 @@ -62458,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 @@ -62474,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 @@ -62488,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 @@ -62502,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 @@ -62516,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 @@ -62530,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 @@ -62544,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 @@ -62558,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 @@ -62572,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 @@ -62586,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 @@ -62600,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 @@ -62620,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 @@ -62638,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 @@ -62653,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 @@ -62668,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 @@ -62683,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 @@ -62697,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 @@ -62711,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 @@ -62725,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 @@ -62739,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 @@ -62753,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 @@ -62767,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 @@ -62781,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 @@ -62795,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 @@ -62809,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 @@ -62823,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 @@ -62837,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 @@ -62851,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 @@ -62865,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 @@ -62879,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 @@ -62893,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 @@ -62907,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 @@ -62921,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 @@ -62936,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 @@ -62958,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 4d0067cb9f..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 @@ -2143,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 @@ -2152,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 @@ -2168,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 @@ -3059,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 @@ -3080,7 +1344,7 @@ i64.sub f64.reinterpret_i64 local.get $2 - i32.const 5504 + i32.const 3136 i32.add local.tee $2 f64.load @@ -3135,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 @@ -3146,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 @@ -3171,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 @@ -3192,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 @@ -3444,7 +1708,7 @@ i32.and i32.const 4 i32.shl - i32.const 7552 + i32.const 5184 i32.add local.set $5 local.get $1 @@ -3491,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 @@ -3512,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 @@ -3533,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 @@ -4945,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 @@ -4957,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 @@ -4975,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 @@ -5077,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 @@ -5089,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 @@ -5098,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 @@ -5199,7 +3463,7 @@ i32.wrap_i64 i32.const 3 i32.shl - i32.const 7808 + i32.const 5440 i32.add local.tee $4 i64.load @@ -6136,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 @@ -6655,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 @@ -6795,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 @@ -6815,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 @@ -6830,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 @@ -6845,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 @@ -7200,7 +5464,7 @@ i32.and i32.const 3 i32.shl - i32.const 10080 + i32.const 7712 i32.add i64.load local.get $2 @@ -7214,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 @@ -7230,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 @@ -7245,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 @@ -7260,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 @@ -7360,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 @@ -7568,7 +5832,7 @@ i32.and i32.const 3 i32.shl - i32.const 10080 + i32.const 7712 i32.add i64.load local.get $4 @@ -7615,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 @@ -7623,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 @@ -7638,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 @@ -7648,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 @@ -7779,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 @@ -7803,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 @@ -8076,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 @@ -8097,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 @@ -8105,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 @@ -8120,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 @@ -8390,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 @@ -8408,7 +6672,7 @@ i64.sub f64.reinterpret_i64 local.get $2 - i32.const 11360 + i32.const 8992 i32.add local.tee $2 f64.load @@ -8541,7 +6805,7 @@ i32.and i32.const 4 i32.shl - i32.const 12384 + i32.const 10016 i32.add local.set $7 local.get $3 @@ -8634,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 @@ -8645,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 @@ -8682,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 @@ -8697,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 @@ -8762,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 @@ -8790,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 @@ -9430,7 +7694,7 @@ i32.wrap_i64 i32.const 5 i32.shl - i32.const 12640 + i32.const 10272 i32.add local.tee $3 f64.load @@ -9609,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 @@ -10085,7 +8349,7 @@ i32.and i32.const 4 i32.shl - i32.const 12384 + i32.const 10016 i32.add local.tee $2 f64.load @@ -10188,7 +8452,7 @@ i32.and i32.const 3 i32.shl - i32.const 10080 + i32.const 7712 i32.add i64.load local.get $5 @@ -11554,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 @@ -11732,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 @@ -11763,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 @@ -11778,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 @@ -11789,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 @@ -11832,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 @@ -11847,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 @@ -11862,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 @@ -11874,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 @@ -12519,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 @@ -13684,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 @@ -13723,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 @@ -13736,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 @@ -13749,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 @@ -13762,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 @@ -13775,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 @@ -13788,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 @@ -13801,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 @@ -13815,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 @@ -13829,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 @@ -13843,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 @@ -13857,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 @@ -13871,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 @@ -13885,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 @@ -13899,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 @@ -13914,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 @@ -13929,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 @@ -13944,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 @@ -13959,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 @@ -13974,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 @@ -13989,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 @@ -14004,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 @@ -14019,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 @@ -14034,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 @@ -14049,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 @@ -14064,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 @@ -14079,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 @@ -14094,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 @@ -14109,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 @@ -14124,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 @@ -14139,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 @@ -14154,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 @@ -14169,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 @@ -14184,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 @@ -14199,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 @@ -14214,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 @@ -14229,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 @@ -14244,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 @@ -14259,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 @@ -14274,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 @@ -14289,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 @@ -14304,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 @@ -14319,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 @@ -14334,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 @@ -14347,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 @@ -14360,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 @@ -14373,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 @@ -14386,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 @@ -14399,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 @@ -14412,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 @@ -14425,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 @@ -14438,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 @@ -14451,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 @@ -14464,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 @@ -14477,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 @@ -14490,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 @@ -14503,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 @@ -14516,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 @@ -14529,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 @@ -14542,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 @@ -14555,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 @@ -14568,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 @@ -14581,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 @@ -14594,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 @@ -14607,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 @@ -14620,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 @@ -14633,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 @@ -14646,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 @@ -14659,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 @@ -14672,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 @@ -14685,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 @@ -14698,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 @@ -14711,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 @@ -14733,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 @@ -14755,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 @@ -14777,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 @@ -14799,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 @@ -14821,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 @@ -14843,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 @@ -14865,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 @@ -14887,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 @@ -14909,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 @@ -14931,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 @@ -14953,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 @@ -14975,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 @@ -14997,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 @@ -15019,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 @@ -15041,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 @@ -15063,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 @@ -15085,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 @@ -15098,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 @@ -15111,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 @@ -15124,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 @@ -15137,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 @@ -15150,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 @@ -15163,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 @@ -15176,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 @@ -15189,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 @@ -15202,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 @@ -15215,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 @@ -15228,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 @@ -15241,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 @@ -15254,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 @@ -15267,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 @@ -15280,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 @@ -15293,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 @@ -15306,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 @@ -15329,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 @@ -15352,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 @@ -15375,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 @@ -15398,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 @@ -15421,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 @@ -15444,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 @@ -15467,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 @@ -15490,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 @@ -15513,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 @@ -15536,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 @@ -15559,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 @@ -15582,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 @@ -15605,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 @@ -15628,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 @@ -15651,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 @@ -15674,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 @@ -15697,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 @@ -15720,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 @@ -15743,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 @@ -15766,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 @@ -15780,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 @@ -15794,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 @@ -15808,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 @@ -15822,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 @@ -15836,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 @@ -15850,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 @@ -15864,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 @@ -15878,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 @@ -15892,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 @@ -15906,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 @@ -15920,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 @@ -15934,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 @@ -15948,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 @@ -15962,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 @@ -15976,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 @@ -15990,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 @@ -16004,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 @@ -16018,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 @@ -16032,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 @@ -16046,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 @@ -16060,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 @@ -16073,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 @@ -16086,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 @@ -16099,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 @@ -16112,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 @@ -16125,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 @@ -16138,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 @@ -16151,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 @@ -16164,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 @@ -16177,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 @@ -16190,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 @@ -16203,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 @@ -16216,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 @@ -16229,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 @@ -16242,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 @@ -16255,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 @@ -16268,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 @@ -16281,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 @@ -16294,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 @@ -16307,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 @@ -16320,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 @@ -16333,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 @@ -16346,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 @@ -16359,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 @@ -16372,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 @@ -16385,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 @@ -16398,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 @@ -16411,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 @@ -16424,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 @@ -16437,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 @@ -16450,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 @@ -16463,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 @@ -16476,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 @@ -16489,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 @@ -16502,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 @@ -16515,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 @@ -16528,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 @@ -16541,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 @@ -16554,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 @@ -16567,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 @@ -16590,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 @@ -16613,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 @@ -16636,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 @@ -16659,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 @@ -16682,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 @@ -16705,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 @@ -16728,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 @@ -16751,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 @@ -16774,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 @@ -16797,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 @@ -16820,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 @@ -16843,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 @@ -16866,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 @@ -16889,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 @@ -16912,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 @@ -16935,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 @@ -16958,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 @@ -16981,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 @@ -17004,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 @@ -17027,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 @@ -17041,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 @@ -17055,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 @@ -17069,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 @@ -17083,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 @@ -17097,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 @@ -17111,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 @@ -17125,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 @@ -17139,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 @@ -17153,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 @@ -17167,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 @@ -17181,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 @@ -17195,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 @@ -17209,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 @@ -17223,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 @@ -17237,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 @@ -17251,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 @@ -17265,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 @@ -17279,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 @@ -17293,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 @@ -17307,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 @@ -17320,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 @@ -17333,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 @@ -17346,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 @@ -17359,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 @@ -17372,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 @@ -17385,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 @@ -17398,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 @@ -17411,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 @@ -17424,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 @@ -17437,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 @@ -17450,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 @@ -17463,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 @@ -17476,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 @@ -17489,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 @@ -17502,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 @@ -17515,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 @@ -17528,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 @@ -17541,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 @@ -17554,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 @@ -17567,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 @@ -17580,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 @@ -17593,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 @@ -17606,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 @@ -17619,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 @@ -17632,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 @@ -17645,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 @@ -17658,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 @@ -17671,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 @@ -17684,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 @@ -17697,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 @@ -17720,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 @@ -17743,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 @@ -17766,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 @@ -17789,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 @@ -17812,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 @@ -17835,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 @@ -17858,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 @@ -17881,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 @@ -17904,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 @@ -17927,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 @@ -17950,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 @@ -17973,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 @@ -17996,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 @@ -18019,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 @@ -18042,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 @@ -18065,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 @@ -18088,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 @@ -18111,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 @@ -18125,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 @@ -18139,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 @@ -18153,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 @@ -18167,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 @@ -18181,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 @@ -18195,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 @@ -18209,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 @@ -18223,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 @@ -18237,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 @@ -18251,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 @@ -18265,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 @@ -18279,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 @@ -18293,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 @@ -18307,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 @@ -18321,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 @@ -18335,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 @@ -18349,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 @@ -18362,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 @@ -18375,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 @@ -18388,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 @@ -18401,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 @@ -18414,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 @@ -18427,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 @@ -18440,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 @@ -18453,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 @@ -18466,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 @@ -18479,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 @@ -18492,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 @@ -18505,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 @@ -18518,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 @@ -18531,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 @@ -18544,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 @@ -18557,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 @@ -18570,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 @@ -18583,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 @@ -18596,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 @@ -18609,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 @@ -18622,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 @@ -18635,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 @@ -18648,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 @@ -18661,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 @@ -18674,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 @@ -18687,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 @@ -18700,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 @@ -18713,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 @@ -18726,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 @@ -18739,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 @@ -18752,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 @@ -18765,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 @@ -18778,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 @@ -18791,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 @@ -18804,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 @@ -18817,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 @@ -18830,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 @@ -18843,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 @@ -18856,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 @@ -18869,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 @@ -18882,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 @@ -18895,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 @@ -18908,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 @@ -18921,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 @@ -18934,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 @@ -18947,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 @@ -18960,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 @@ -18973,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 @@ -18987,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 @@ -19001,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 @@ -19015,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 @@ -19029,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 @@ -19043,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 @@ -19057,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 @@ -19071,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 @@ -19085,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 @@ -19099,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 @@ -19113,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 @@ -19127,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 @@ -19141,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 @@ -19155,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 @@ -19169,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 @@ -19183,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 @@ -19197,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 @@ -19211,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 @@ -19225,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 @@ -19239,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 @@ -19253,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 @@ -19267,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 @@ -19281,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 @@ -19295,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 @@ -19309,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 @@ -19323,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 @@ -19337,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 @@ -19351,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 @@ -19365,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 @@ -19379,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 @@ -19393,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 @@ -19407,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 @@ -19421,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 @@ -19435,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 @@ -19449,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 @@ -19463,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 @@ -19477,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 @@ -19491,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 @@ -19505,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 @@ -19519,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 @@ -19533,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 @@ -19548,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 @@ -19563,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 @@ -19578,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 @@ -19593,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 @@ -19608,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 @@ -19623,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 @@ -19638,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 @@ -19653,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 @@ -19668,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 @@ -19683,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 @@ -19698,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 @@ -19713,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 @@ -19728,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 @@ -19743,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 @@ -19758,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 @@ -19773,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 @@ -19788,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 @@ -19803,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 @@ -19818,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 @@ -19833,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 @@ -19848,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 @@ -19863,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 @@ -19878,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 @@ -19893,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 @@ -19908,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 @@ -19923,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 @@ -19938,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 @@ -19953,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 @@ -19968,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 @@ -19983,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 @@ -19998,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 @@ -20013,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 @@ -20028,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 @@ -20043,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 @@ -20058,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 @@ -20073,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 @@ -20088,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 @@ -20103,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 @@ -20116,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 @@ -20129,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 @@ -20142,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 @@ -20155,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 @@ -20168,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 @@ -20181,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 @@ -20194,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 @@ -20207,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 @@ -20220,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 @@ -20233,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 @@ -20246,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 @@ -20259,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 @@ -20272,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 @@ -20285,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 @@ -20298,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 @@ -20311,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 @@ -20324,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 @@ -20337,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 @@ -20350,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 @@ -20363,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 @@ -20376,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 @@ -20389,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 @@ -20402,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 @@ -20415,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 @@ -20428,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 @@ -20441,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 @@ -20454,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 @@ -20467,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 @@ -20480,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 @@ -20493,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 @@ -20506,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 @@ -20519,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 @@ -20532,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 @@ -20545,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 @@ -20558,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 @@ -20571,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 @@ -20584,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 @@ -20597,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 @@ -20610,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 @@ -20623,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 @@ -20645,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 @@ -20667,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 @@ -20689,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 @@ -20711,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 @@ -20733,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 @@ -20755,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 @@ -20777,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 @@ -20799,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 @@ -20821,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 @@ -20843,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 @@ -20865,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 @@ -20887,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 @@ -20909,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 @@ -20931,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 @@ -20953,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 @@ -20975,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 @@ -20997,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 @@ -21019,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 @@ -21041,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 @@ -21063,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 @@ -21085,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 @@ -21107,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 @@ -21129,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 @@ -21151,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 @@ -21173,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 @@ -21195,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 @@ -21217,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 @@ -21239,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 @@ -21261,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 @@ -21283,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 @@ -21305,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 @@ -21327,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 @@ -21349,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 @@ -21371,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 @@ -21393,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 @@ -21415,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 @@ -21437,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 @@ -21459,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 @@ -21481,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 @@ -21503,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 @@ -21525,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 @@ -21547,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 @@ -21569,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 @@ -21591,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 @@ -21613,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 @@ -21635,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 @@ -21657,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 @@ -21679,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 @@ -21701,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 @@ -21723,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 @@ -21745,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 @@ -21767,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 @@ -21789,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 @@ -21811,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 @@ -21833,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 @@ -21846,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 @@ -21859,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 @@ -21872,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 @@ -21885,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 @@ -21898,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 @@ -21911,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 @@ -21924,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 @@ -21937,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 @@ -21950,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 @@ -21963,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 @@ -21976,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 @@ -21989,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 @@ -22002,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 @@ -22015,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 @@ -22028,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 @@ -22041,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 @@ -22054,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 @@ -22067,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 @@ -22080,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 @@ -22093,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 @@ -22106,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 @@ -22119,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 @@ -22132,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 @@ -22145,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 @@ -22158,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 @@ -22171,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 @@ -22184,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 @@ -22197,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 @@ -22210,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 @@ -22223,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 @@ -22236,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 @@ -22249,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 @@ -22262,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 @@ -22275,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 @@ -22288,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 @@ -22301,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 @@ -22314,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 @@ -22327,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 @@ -22340,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 @@ -22353,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 @@ -22366,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 @@ -22379,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 @@ -22392,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 @@ -22405,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 @@ -22418,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 @@ -22431,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 @@ -22444,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 @@ -22457,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 @@ -22470,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 @@ -22483,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 @@ -22496,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 @@ -22509,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 @@ -22522,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 @@ -22535,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 @@ -22548,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 @@ -22571,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 @@ -22594,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 @@ -22617,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 @@ -22640,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 @@ -22663,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 @@ -22686,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 @@ -22709,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 @@ -22732,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 @@ -22755,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 @@ -22778,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 @@ -22801,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 @@ -22824,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 @@ -22847,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 @@ -22870,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 @@ -22893,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 @@ -22916,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 @@ -22939,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 @@ -22962,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 @@ -22985,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 @@ -23008,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 @@ -23031,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 @@ -23054,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 @@ -23077,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 @@ -23100,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 @@ -23123,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 @@ -23146,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 @@ -23169,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 @@ -23192,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 @@ -23215,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 @@ -23238,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 @@ -23261,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 @@ -23284,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 @@ -23307,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 @@ -23330,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 @@ -23353,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 @@ -23376,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 @@ -23399,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 @@ -23422,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 @@ -23445,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 @@ -23468,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 @@ -23491,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 @@ -23514,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 @@ -23537,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 @@ -23560,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 @@ -23583,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 @@ -23606,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 @@ -23629,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 @@ -23652,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 @@ -23675,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 @@ -23698,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 @@ -23721,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 @@ -23744,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 @@ -23767,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 @@ -23790,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 @@ -23813,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 @@ -23836,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 @@ -23859,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 @@ -23882,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 @@ -23905,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 @@ -23928,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 @@ -23951,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 @@ -23974,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 @@ -23997,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 @@ -24020,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 @@ -24043,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 @@ -24066,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 @@ -24089,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 @@ -24112,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 @@ -24135,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 @@ -24158,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 @@ -24181,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 @@ -24204,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 @@ -24227,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 @@ -24250,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 @@ -24273,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 @@ -24296,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 @@ -24319,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 @@ -24342,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 @@ -24365,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 @@ -24388,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 @@ -24411,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 @@ -24434,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 @@ -24457,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 @@ -24480,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 @@ -24503,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 @@ -24526,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 @@ -24549,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 @@ -24572,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 @@ -24595,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 @@ -24618,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 @@ -24641,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 @@ -24664,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 @@ -24687,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 @@ -24710,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 @@ -24733,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 @@ -24756,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 @@ -24779,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 @@ -24802,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 @@ -24825,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 @@ -24848,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 @@ -24871,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 @@ -24894,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 @@ -24917,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 @@ -24940,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 @@ -24963,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 @@ -24986,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 @@ -25009,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 @@ -25032,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 @@ -25055,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 @@ -25078,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 @@ -25101,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 @@ -25124,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 @@ -25147,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 @@ -25170,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 @@ -25193,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 @@ -25216,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 @@ -25239,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 @@ -25262,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 @@ -25285,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 @@ -25308,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 @@ -25331,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 @@ -25354,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 @@ -25377,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 @@ -25400,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 @@ -25423,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 @@ -25446,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 @@ -25459,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 @@ -25472,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 @@ -25485,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 @@ -25497,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 @@ -25509,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 @@ -25521,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 @@ -25533,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 @@ -25545,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 @@ -25557,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 @@ -25569,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 @@ -25581,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 @@ -25593,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 @@ -25605,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 @@ -25617,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 @@ -25629,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 @@ -25641,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 @@ -25653,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 @@ -25665,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 @@ -25677,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 @@ -25689,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 @@ -25701,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 @@ -25715,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 @@ -25729,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 @@ -25743,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 @@ -25757,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 @@ -25771,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 @@ -25785,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 @@ -25799,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 @@ -25813,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 @@ -25827,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 @@ -25841,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 @@ -25855,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 @@ -25869,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 @@ -25883,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 @@ -25897,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 @@ -25911,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 @@ -25925,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 @@ -25939,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 @@ -25953,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 @@ -25967,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 @@ -25981,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 @@ -25995,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 @@ -26009,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 @@ -26023,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 @@ -26037,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 @@ -26051,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 @@ -26065,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 @@ -26079,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 @@ -26093,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 @@ -26107,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 @@ -26121,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 @@ -26135,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 @@ -26149,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 @@ -26163,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 @@ -26177,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 @@ -26191,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 @@ -26205,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 @@ -26219,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 @@ -26233,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 @@ -26247,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 @@ -26261,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 @@ -26275,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 @@ -26289,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 @@ -26303,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 @@ -26317,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 @@ -26331,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 @@ -26345,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 @@ -26359,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 @@ -26373,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 @@ -26387,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 @@ -26401,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 @@ -26415,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 @@ -26429,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 @@ -26443,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 @@ -26457,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 @@ -26471,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 @@ -26485,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 @@ -26499,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 @@ -26513,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 @@ -26527,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 @@ -26541,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 @@ -26555,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 @@ -26569,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 @@ -26583,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 @@ -26597,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 @@ -26611,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 @@ -26625,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 @@ -26639,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 @@ -26652,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 @@ -26665,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 @@ -26678,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 @@ -26691,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 @@ -26704,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 @@ -26717,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 @@ -26730,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 @@ -26743,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 @@ -26756,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 @@ -26769,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 @@ -26782,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 @@ -26795,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 @@ -26808,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 @@ -26821,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 @@ -26834,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 @@ -26847,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 @@ -26860,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 @@ -26873,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 @@ -26886,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 @@ -26899,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 @@ -26912,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 @@ -26925,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 @@ -26938,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 @@ -26951,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 @@ -26964,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 @@ -26977,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 @@ -26990,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 @@ -27003,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 @@ -27016,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 @@ -27029,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 @@ -27052,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 @@ -27075,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 @@ -27098,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 @@ -27121,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 @@ -27144,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 @@ -27167,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 @@ -27190,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 @@ -27213,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 @@ -27236,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 @@ -27259,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 @@ -27282,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 @@ -27305,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 @@ -27328,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 @@ -27351,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 @@ -27374,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 @@ -27397,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 @@ -27420,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 @@ -27443,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 @@ -27466,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 @@ -27489,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 @@ -27512,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 @@ -27535,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 @@ -27558,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 @@ -27581,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 @@ -27604,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 @@ -27627,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 @@ -27650,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 @@ -27673,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 @@ -27696,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 @@ -27719,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 @@ -27742,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 @@ -27765,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 @@ -27788,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 @@ -27811,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 @@ -27834,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 @@ -27857,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 @@ -27880,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 @@ -27903,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 @@ -27926,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 @@ -27949,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 @@ -27972,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 @@ -27995,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 @@ -28018,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 @@ -28032,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 @@ -28046,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 @@ -28060,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 @@ -28074,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 @@ -28088,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 @@ -28102,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 @@ -28116,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 @@ -28130,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 @@ -28144,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 @@ -28158,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 @@ -28172,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 @@ -28186,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 @@ -28200,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 @@ -28214,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 @@ -28228,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 @@ -28242,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 @@ -28256,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 @@ -28270,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 @@ -28284,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 @@ -28298,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 @@ -28312,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 @@ -28326,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 @@ -28340,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 @@ -28354,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 @@ -28377,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 @@ -28400,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 @@ -28423,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 @@ -28446,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 @@ -28469,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 @@ -28492,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 @@ -28515,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 @@ -28538,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 @@ -28561,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 @@ -28584,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 @@ -28607,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 @@ -28630,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 @@ -28653,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 @@ -28676,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 @@ -28699,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 @@ -28722,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 @@ -28745,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 @@ -28768,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 @@ -28791,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 @@ -28805,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 @@ -28819,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 @@ -28833,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 @@ -28847,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 @@ -28861,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 @@ -28875,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 @@ -28889,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 @@ -28903,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 @@ -28917,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 @@ -28931,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 @@ -28945,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 @@ -28959,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 @@ -28973,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 @@ -28987,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 @@ -29001,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 @@ -29015,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 @@ -29029,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 @@ -29042,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 @@ -29055,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 @@ -29068,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 @@ -29081,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 @@ -29094,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 @@ -29107,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 @@ -29120,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 @@ -29133,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 @@ -29146,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 @@ -29159,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 @@ -29172,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 @@ -29185,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 @@ -29198,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 @@ -29211,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 @@ -29224,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 @@ -29237,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 @@ -29250,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 @@ -29263,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 @@ -29276,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 @@ -29289,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 @@ -29302,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 @@ -29315,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 @@ -29328,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 @@ -29341,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 @@ -29354,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 @@ -29367,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 @@ -29380,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 @@ -29393,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 @@ -29406,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 @@ -29419,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 @@ -29432,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 @@ -29445,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 @@ -29458,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 @@ -29471,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 @@ -29484,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 @@ -29497,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 @@ -29510,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 @@ -29523,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 @@ -29536,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 @@ -29549,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 @@ -29562,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 @@ -29575,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 @@ -29588,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 @@ -29601,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 @@ -29614,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 @@ -29636,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 @@ -29658,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 @@ -29680,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 @@ -29702,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 @@ -29724,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 @@ -29746,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 @@ -29768,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 @@ -29790,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 @@ -29812,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 @@ -29834,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 @@ -29856,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 @@ -29878,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 @@ -29900,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 @@ -29922,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 @@ -29944,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 @@ -29966,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 @@ -29988,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 @@ -30010,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 @@ -30032,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 @@ -30054,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 @@ -30076,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 @@ -30098,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 @@ -30120,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 @@ -30142,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 @@ -30164,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 @@ -30177,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 @@ -30190,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 @@ -30203,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 @@ -30216,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 @@ -30229,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 @@ -30242,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 @@ -30255,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 @@ -30268,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 @@ -30281,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 @@ -30294,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 @@ -30307,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 @@ -30320,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 @@ -30333,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 @@ -30346,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 @@ -30359,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 @@ -30372,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 @@ -30385,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 @@ -30398,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 @@ -30411,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 @@ -30424,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 @@ -30437,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 @@ -30450,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 @@ -30463,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 @@ -30476,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 @@ -30489,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 @@ -30503,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 @@ -30517,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 @@ -30531,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 @@ -30545,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 @@ -30559,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 @@ -30573,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 @@ -30587,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 @@ -30601,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 @@ -30615,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 @@ -30629,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 @@ -30643,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 @@ -30657,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 @@ -30671,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 @@ -30685,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 @@ -30699,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 @@ -30713,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 @@ -30727,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 @@ -30741,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 @@ -30755,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 @@ -30769,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 @@ -30783,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 @@ -30797,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 @@ -30811,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 @@ -30825,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 @@ -30839,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 @@ -30853,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 @@ -30867,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 @@ -30881,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 @@ -30895,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 @@ -30909,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 @@ -30923,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 @@ -30937,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 @@ -30951,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 @@ -30965,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 @@ -30979,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 @@ -30993,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 @@ -31007,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 @@ -31021,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 @@ -31035,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 @@ -31049,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 @@ -31063,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 @@ -31077,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 @@ -31091,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 @@ -31105,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 @@ -31119,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 @@ -31133,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 @@ -31147,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 @@ -31161,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 @@ -31175,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 @@ -31189,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 @@ -31203,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 @@ -31217,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 @@ -31231,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 @@ -31245,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 @@ -31259,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 @@ -31273,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 @@ -31287,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 @@ -31301,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 @@ -31315,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 @@ -31329,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 @@ -31352,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 @@ -31375,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 @@ -31398,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 @@ -31421,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 @@ -31444,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 @@ -31467,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 @@ -31490,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 @@ -31513,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 @@ -31536,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 @@ -31559,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 @@ -31582,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 @@ -31605,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 @@ -31628,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 @@ -31651,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 @@ -31674,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 @@ -31697,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 @@ -31720,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 @@ -31743,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 @@ -31757,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 @@ -31771,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 @@ -31785,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 @@ -31799,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 @@ -31813,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 @@ -31827,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 @@ -31841,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 @@ -31855,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 @@ -31869,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 @@ -31883,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 @@ -31897,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 @@ -31911,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 @@ -31925,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 @@ -31939,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 @@ -31953,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 @@ -31967,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 @@ -31980,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 @@ -31993,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 @@ -32006,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 @@ -32019,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 @@ -32032,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 @@ -32045,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 @@ -32058,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 @@ -32071,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 @@ -32084,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 @@ -32097,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 @@ -32110,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 @@ -32123,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 @@ -32136,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 @@ -32149,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 @@ -32162,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 @@ -32175,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 @@ -32188,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 @@ -32201,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 @@ -32214,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 @@ -32227,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 @@ -32240,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 @@ -32253,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 @@ -32266,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 @@ -32279,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 @@ -32292,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 @@ -32305,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 @@ -32318,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 @@ -32331,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 @@ -32344,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 @@ -32357,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 @@ -32370,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 @@ -32383,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 @@ -32396,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 @@ -32409,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 @@ -32422,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 @@ -32435,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 @@ -32458,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 @@ -32481,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 @@ -32504,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 @@ -32527,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 @@ -32550,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 @@ -32573,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 @@ -32596,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 @@ -32619,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 @@ -32642,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 @@ -32665,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 @@ -32688,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 @@ -32711,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 @@ -32734,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 @@ -32757,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 @@ -32780,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 @@ -32803,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 @@ -32826,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 @@ -32849,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 @@ -32863,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 @@ -32877,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 @@ -32891,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 @@ -32905,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 @@ -32919,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 @@ -32933,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 @@ -32947,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 @@ -32961,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 @@ -32975,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 @@ -32989,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 @@ -33003,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 @@ -33017,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 @@ -33031,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 @@ -33045,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 @@ -33059,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 @@ -33073,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 @@ -33087,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 @@ -33101,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 @@ -33115,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 @@ -33138,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 @@ -33161,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 @@ -33184,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 @@ -33207,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 @@ -33230,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 @@ -33253,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 @@ -33276,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 @@ -33299,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 @@ -33322,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 @@ -33345,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 @@ -33368,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 @@ -33391,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 @@ -33414,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 @@ -33437,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 @@ -33460,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 @@ -33483,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 @@ -33506,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 @@ -33529,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 @@ -33542,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 @@ -33555,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 @@ -33568,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 @@ -33581,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 @@ -33594,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 @@ -33607,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 @@ -33620,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 @@ -33633,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 @@ -33646,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 @@ -33659,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 @@ -33672,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 @@ -33685,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 @@ -33698,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 @@ -33711,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 @@ -33724,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 @@ -33737,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 @@ -33750,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 @@ -33763,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 @@ -33776,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 @@ -33789,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 @@ -33802,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 @@ -33815,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 @@ -33828,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 @@ -33841,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 @@ -33854,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 @@ -33867,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 @@ -33880,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 @@ -33893,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 @@ -33906,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 @@ -33919,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 @@ -33932,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 @@ -33945,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 @@ -33958,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 @@ -33971,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 @@ -33984,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 @@ -33997,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 @@ -34010,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 @@ -34023,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 @@ -34036,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 @@ -34049,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 @@ -34062,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 @@ -34075,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 @@ -34088,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 @@ -34101,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 @@ -34114,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 @@ -34127,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 @@ -34140,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 @@ -34153,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 @@ -34166,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 @@ -34179,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 @@ -34192,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 @@ -34205,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 @@ -34218,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 @@ -34231,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 @@ -34244,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 @@ -34257,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 @@ -34270,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 @@ -34283,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 @@ -34296,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 @@ -34309,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 @@ -34322,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 @@ -34335,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 @@ -34348,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 @@ -34361,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 @@ -34374,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 @@ -34387,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 @@ -34400,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 @@ -34413,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 @@ -34426,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 @@ -34439,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 @@ -34452,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 @@ -34465,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 @@ -34478,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 @@ -34491,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 @@ -34504,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 @@ -34517,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 @@ -34530,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 @@ -34543,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 @@ -34556,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 @@ -34569,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 @@ -34582,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 @@ -34595,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 @@ -34608,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 @@ -34621,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 @@ -34634,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 @@ -34647,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 @@ -34660,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 @@ -34673,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 @@ -34686,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 @@ -34699,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 @@ -34712,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 @@ -34725,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 @@ -34738,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 @@ -34751,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 @@ -34764,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 @@ -34777,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 @@ -34790,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 @@ -34803,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 @@ -34816,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 @@ -34829,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 @@ -34842,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 @@ -34855,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 @@ -34868,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 @@ -34881,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 @@ -34894,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 @@ -34907,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 @@ -34920,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 @@ -34933,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 @@ -34946,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 @@ -34959,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 @@ -34972,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 @@ -34985,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 @@ -34998,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 @@ -35011,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 @@ -35024,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 @@ -35037,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 @@ -35050,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 @@ -35063,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 @@ -35076,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 @@ -35089,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 @@ -35102,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 @@ -35115,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 @@ -35128,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 @@ -35141,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 @@ -35154,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 @@ -35167,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 @@ -35180,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 @@ -35193,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 @@ -35206,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 @@ -35219,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 @@ -35232,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 @@ -35245,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 @@ -35258,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 @@ -35271,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 @@ -35284,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 @@ -35297,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 @@ -35310,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 @@ -35323,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 @@ -35336,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 @@ -35349,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 @@ -35362,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 @@ -35375,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 @@ -35388,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 @@ -35401,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 @@ -35414,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 @@ -35427,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 @@ -35440,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 @@ -35453,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 @@ -35466,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 @@ -35479,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 @@ -35492,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 @@ -35505,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 @@ -35518,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 @@ -35531,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 @@ -35544,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 @@ -35557,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 @@ -35570,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 @@ -35583,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 @@ -35596,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 @@ -35609,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 @@ -35622,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 @@ -35635,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 @@ -35648,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 @@ -35661,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 @@ -35674,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 @@ -35687,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 @@ -35700,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 @@ -35713,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 @@ -35726,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 @@ -35739,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 @@ -35752,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 @@ -35765,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 @@ -35778,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 @@ -35791,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 @@ -35804,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 @@ -35817,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 @@ -35830,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 @@ -35843,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 @@ -35856,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 @@ -35869,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 @@ -35882,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 @@ -35895,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 @@ -35908,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 @@ -35921,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 @@ -35934,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 @@ -35947,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 @@ -35960,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 @@ -35973,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 @@ -35986,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 @@ -35999,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 @@ -36012,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 @@ -36025,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 @@ -36038,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 @@ -36051,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 @@ -36064,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 @@ -36077,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 @@ -36090,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 @@ -36103,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 @@ -36116,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 @@ -36129,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 @@ -36142,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 @@ -36155,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 @@ -36168,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 @@ -36181,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 @@ -36194,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 @@ -36207,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 @@ -36220,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 @@ -36233,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 @@ -36246,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 @@ -36259,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 @@ -36272,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 @@ -36285,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 @@ -36298,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 @@ -36311,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 @@ -36324,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 @@ -36337,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 @@ -36350,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 @@ -36363,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 @@ -36376,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 @@ -36389,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 @@ -36402,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 @@ -36415,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 @@ -36428,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 @@ -36441,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 @@ -36454,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 @@ -36467,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 @@ -36480,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 @@ -36493,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 @@ -36506,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 @@ -36519,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 @@ -36532,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 @@ -36545,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 @@ -36558,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 @@ -36571,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 @@ -36584,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 @@ -36597,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 @@ -36610,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 @@ -36623,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 @@ -36636,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 @@ -36649,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 @@ -36662,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 @@ -36675,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 @@ -36688,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 @@ -36701,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 @@ -36714,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 @@ -36727,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 @@ -36740,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 @@ -36753,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 @@ -36766,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 @@ -36779,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 @@ -36792,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 @@ -36805,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 @@ -36818,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 @@ -36831,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 @@ -36844,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 @@ -36857,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 @@ -36870,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 @@ -36883,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 @@ -36896,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 @@ -36909,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 @@ -36922,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 @@ -36935,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 @@ -36948,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 @@ -36961,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 @@ -36974,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 @@ -36987,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 @@ -37000,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 @@ -37013,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 @@ -37026,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 @@ -37039,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 @@ -37052,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 @@ -37065,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 @@ -37078,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 @@ -37091,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 @@ -37104,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 @@ -37117,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 @@ -37130,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 @@ -37143,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 @@ -37156,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 @@ -37169,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 @@ -37182,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 @@ -37195,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 @@ -37208,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 @@ -37221,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 @@ -37234,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 @@ -37247,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 @@ -37260,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 @@ -37273,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 @@ -37286,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 @@ -37299,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 @@ -37312,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 @@ -37325,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 @@ -37338,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 @@ -37351,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 @@ -37364,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 @@ -37377,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 @@ -37390,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 @@ -37403,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 @@ -37416,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 @@ -37429,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 @@ -37442,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 @@ -37455,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 @@ -37468,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 @@ -37481,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 @@ -37494,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 @@ -37507,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 @@ -37520,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 @@ -37533,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 @@ -37546,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 @@ -37559,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 @@ -37572,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 @@ -37585,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 @@ -37598,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 @@ -37611,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 @@ -37624,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 @@ -37637,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 @@ -37650,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 @@ -37663,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 @@ -37676,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 @@ -37689,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 @@ -37702,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 @@ -37715,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 @@ -37728,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 @@ -37741,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 @@ -37754,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 @@ -37767,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 @@ -37780,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 @@ -37793,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 @@ -37806,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 @@ -37819,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 @@ -37832,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 @@ -37845,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 @@ -37858,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 @@ -37871,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 @@ -37884,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 @@ -37897,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 @@ -37910,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 @@ -37923,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 @@ -37936,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 @@ -37949,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 @@ -37962,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 @@ -37975,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 @@ -37988,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 @@ -38001,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 @@ -38014,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 @@ -38027,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 @@ -38040,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 @@ -38053,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 @@ -38066,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 @@ -38079,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 @@ -38092,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 @@ -38105,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 @@ -38118,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 @@ -38131,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 @@ -38144,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 @@ -38157,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 @@ -38170,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 @@ -38183,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 @@ -38196,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 @@ -38209,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 @@ -38222,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 @@ -38235,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 @@ -38248,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 @@ -38261,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 @@ -38274,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 @@ -38287,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 @@ -38300,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 @@ -38313,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 @@ -38326,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 @@ -38339,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 @@ -38352,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 @@ -38365,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 @@ -38378,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 @@ -38391,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 @@ -38404,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 @@ -38417,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 @@ -38430,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 @@ -38443,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 @@ -38456,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 @@ -38469,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 @@ -38482,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 @@ -38495,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 @@ -38508,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 @@ -38521,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 @@ -38534,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 @@ -38547,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 @@ -38560,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 @@ -38573,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 @@ -38586,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 @@ -38599,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 @@ -38612,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 @@ -38625,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 @@ -38638,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 @@ -38651,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 @@ -38664,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 @@ -38677,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 @@ -38690,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 @@ -38703,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 @@ -38716,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 @@ -38729,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 @@ -38742,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 @@ -38755,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 @@ -38768,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 @@ -38781,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 @@ -38794,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 @@ -38807,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 @@ -38820,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 @@ -38833,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 @@ -38846,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 @@ -38859,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 @@ -38872,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 @@ -38885,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 @@ -38898,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 @@ -38911,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 @@ -38924,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 @@ -38937,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 @@ -38950,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 @@ -38963,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 @@ -38976,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 @@ -38989,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 @@ -39002,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 @@ -39015,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 @@ -39028,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 @@ -39041,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 @@ -39054,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 @@ -39067,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 @@ -39080,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 @@ -39093,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 @@ -39108,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 @@ -39123,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 @@ -39138,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 @@ -39153,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 @@ -39168,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 @@ -39183,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 @@ -39198,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 @@ -39213,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 @@ -39228,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 @@ -39243,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 @@ -39258,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 @@ -39273,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 @@ -39288,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 @@ -39303,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 @@ -39318,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 @@ -39333,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 @@ -39348,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 @@ -39363,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 @@ -39378,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 @@ -39393,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 @@ -39408,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 @@ -39423,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 @@ -39438,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 @@ -39453,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 @@ -39468,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 @@ -39483,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 @@ -39498,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 @@ -39513,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 @@ -39528,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 @@ -39543,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 @@ -39558,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 @@ -39573,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 @@ -39588,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 @@ -39603,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 @@ -39618,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 @@ -39633,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 @@ -39648,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 @@ -39663,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 @@ -39678,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 @@ -39693,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 @@ -39708,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 @@ -39723,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 @@ -39738,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 @@ -39753,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 @@ -39768,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 @@ -39783,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 @@ -39798,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 @@ -39813,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 @@ -39828,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 @@ -39843,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 @@ -39858,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 @@ -39873,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 @@ -39888,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 @@ -39903,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 @@ -39918,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 @@ -39933,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 @@ -39948,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 @@ -39963,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 @@ -39978,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 @@ -39993,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 @@ -40008,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 @@ -40023,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 @@ -40038,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 @@ -40053,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 @@ -40068,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 @@ -40083,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 @@ -40098,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 @@ -40113,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 @@ -40128,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 @@ -40143,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 @@ -40158,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 @@ -40173,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 @@ -40188,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 @@ -40203,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 @@ -40218,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 @@ -40233,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 @@ -40247,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 @@ -40261,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 @@ -40275,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 @@ -40289,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 @@ -40303,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 @@ -40317,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 @@ -40331,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 @@ -40345,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 @@ -40359,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 @@ -40373,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 @@ -40387,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 @@ -40401,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 @@ -40415,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 @@ -40429,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 @@ -40443,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 @@ -40457,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 @@ -40471,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 @@ -40485,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 @@ -40499,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 @@ -40513,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 @@ -40527,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 @@ -40541,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 @@ -40555,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 @@ -40569,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 @@ -40583,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 @@ -40597,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 @@ -40611,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 @@ -40625,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 @@ -40639,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 @@ -40653,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 @@ -40667,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 @@ -40681,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 @@ -40695,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 @@ -40709,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 @@ -40723,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 @@ -40737,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 @@ -40751,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 @@ -40765,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 @@ -40779,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 @@ -40793,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 @@ -40807,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 @@ -40821,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 @@ -40835,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 @@ -40849,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 @@ -40863,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 @@ -40877,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 @@ -40891,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 @@ -40905,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 @@ -40919,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 @@ -40933,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 @@ -40947,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 @@ -40961,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 @@ -40975,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 @@ -40989,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 @@ -41003,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 @@ -41017,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 @@ -41031,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 @@ -41045,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 @@ -41059,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 @@ -41073,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 @@ -41087,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 @@ -41101,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 @@ -41115,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 @@ -41129,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 @@ -41143,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 @@ -41157,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 @@ -41171,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 @@ -41185,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 @@ -41199,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 @@ -41213,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 @@ -41227,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 @@ -41241,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 @@ -41255,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 @@ -41269,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 @@ -41283,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 @@ -41297,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 @@ -41311,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 @@ -41325,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 @@ -41339,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 @@ -41353,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 @@ -41367,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 @@ -41381,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 @@ -41395,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 @@ -41409,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 @@ -41423,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 @@ -41437,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 @@ -41451,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 @@ -41465,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 @@ -41479,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 @@ -41493,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 @@ -41507,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 @@ -41521,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 @@ -41535,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 @@ -41549,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 @@ -41563,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 @@ -41577,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 @@ -41591,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 @@ -41605,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 @@ -41619,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 @@ -41633,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 @@ -41647,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 @@ -41661,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 @@ -41674,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 @@ -41687,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 @@ -41700,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 @@ -41713,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 @@ -41726,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 @@ -41739,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 @@ -41752,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 @@ -41765,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 @@ -41779,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 @@ -41793,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 @@ -41806,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 @@ -41819,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 @@ -41832,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 @@ -41846,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 @@ -41859,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 @@ -41872,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 @@ -41885,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 @@ -41898,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 @@ -41911,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 @@ -41925,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 @@ -41939,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 @@ -41953,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 @@ -41966,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 @@ -41979,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 @@ -41992,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 @@ -42005,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 @@ -42018,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 @@ -42031,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 @@ -42044,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 @@ -42058,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 @@ -42071,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 @@ -42084,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 @@ -42098,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 @@ -42111,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 @@ -42124,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 @@ -42137,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 @@ -42150,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 @@ -42164,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 @@ -42179,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 @@ -42194,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 @@ -42209,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 @@ -42224,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 @@ -42239,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 @@ -42254,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 @@ -42269,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 @@ -42284,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 @@ -42299,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 @@ -42314,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 @@ -42329,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 @@ -42344,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 @@ -42359,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 @@ -42374,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 @@ -42389,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 @@ -42404,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 @@ -42419,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 @@ -42434,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 @@ -42449,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 @@ -42464,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 @@ -42479,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 @@ -42494,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 @@ -42509,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 @@ -42524,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 @@ -42539,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 @@ -42554,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 @@ -42569,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 @@ -42584,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 @@ -42599,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 @@ -42614,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 @@ -42629,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 @@ -42644,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 @@ -42659,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 @@ -42674,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 @@ -42689,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 @@ -42704,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 @@ -42719,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 @@ -42734,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 @@ -42749,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 @@ -42764,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 @@ -42779,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 @@ -42794,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 @@ -42809,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 @@ -42824,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 @@ -42839,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 @@ -42854,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 @@ -42869,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 @@ -42884,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 @@ -42899,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 @@ -42914,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 @@ -42929,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 @@ -42944,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 @@ -42959,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 @@ -42974,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 @@ -42989,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 @@ -43004,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 @@ -43019,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 @@ -43034,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 @@ -43049,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 @@ -43064,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 @@ -43079,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 @@ -43094,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 @@ -43109,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 @@ -43124,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 @@ -43139,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 @@ -43154,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 @@ -43169,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 @@ -43184,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 @@ -43199,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 @@ -43214,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 @@ -43229,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 @@ -43244,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 @@ -43259,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 @@ -43274,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 @@ -43289,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 @@ -43304,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 @@ -43319,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 @@ -43334,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 @@ -43349,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 @@ -43364,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 @@ -43379,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 @@ -43394,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 @@ -43409,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 @@ -43424,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 @@ -43439,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 @@ -43454,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 @@ -43469,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 @@ -43484,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 @@ -43499,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 @@ -43514,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 @@ -43529,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 @@ -43544,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 @@ -43559,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 @@ -43574,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 @@ -43589,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 @@ -43604,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 @@ -43619,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 @@ -43634,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 @@ -43649,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 @@ -43664,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 @@ -43679,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 @@ -43694,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 @@ -43709,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 @@ -43724,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 @@ -43739,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 @@ -43754,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 @@ -43769,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 @@ -43784,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 @@ -43799,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 @@ -43814,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 @@ -43829,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 @@ -43844,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 @@ -43859,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 @@ -43874,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 @@ -43889,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 @@ -43904,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 @@ -43919,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 @@ -43934,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 @@ -43949,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 @@ -43964,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 @@ -43979,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 @@ -43994,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 @@ -44009,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 @@ -44024,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 @@ -44039,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 @@ -44054,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 @@ -44069,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 @@ -44084,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 @@ -44099,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 @@ -44114,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 @@ -44129,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 @@ -44144,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 @@ -44159,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 @@ -44174,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 @@ -44189,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 @@ -44204,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 @@ -44219,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 @@ -44234,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 @@ -44249,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 @@ -44264,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 @@ -44279,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 @@ -44294,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 @@ -44309,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 @@ -44324,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 @@ -44339,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 @@ -44354,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 @@ -44369,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 @@ -44384,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 @@ -44399,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 @@ -44414,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 @@ -44429,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 @@ -44444,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 @@ -44459,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 @@ -44474,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 @@ -44489,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 @@ -44504,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 @@ -44519,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 @@ -44534,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 @@ -44549,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 @@ -44564,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 @@ -44579,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 @@ -44594,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 @@ -44609,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 @@ -44624,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 @@ -44639,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 @@ -44654,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 @@ -44669,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 @@ -44684,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 @@ -44699,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 @@ -44714,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 @@ -44729,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 @@ -44744,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 @@ -44759,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 @@ -44774,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 @@ -44789,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 @@ -44804,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 @@ -44819,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 @@ -44834,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 @@ -44849,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 @@ -44864,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 @@ -44879,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 @@ -44894,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 @@ -44909,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 @@ -44924,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 @@ -44939,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 @@ -44954,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 @@ -44969,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 @@ -44984,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 @@ -44999,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 @@ -45014,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 @@ -45029,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 @@ -45044,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 @@ -45059,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 @@ -45074,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 @@ -45089,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 @@ -45104,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 @@ -45119,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 @@ -45134,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 @@ -45149,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 @@ -45164,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 @@ -45179,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 @@ -45194,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 @@ -45209,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 @@ -45224,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 @@ -45239,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 @@ -45254,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 @@ -45269,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 @@ -45284,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 @@ -45299,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 @@ -45314,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 @@ -45329,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 @@ -45344,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 @@ -45359,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 @@ -45374,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 @@ -45389,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 @@ -45404,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 @@ -45419,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 @@ -45434,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 @@ -45449,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 @@ -45464,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 @@ -45479,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 @@ -45494,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 @@ -45509,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 @@ -45524,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 @@ -45539,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 @@ -45554,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 @@ -45569,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 @@ -45584,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 @@ -45646,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 @@ -45717,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 @@ -45736,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 @@ -45748,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 @@ -45760,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 @@ -45772,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 @@ -45784,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 @@ -45796,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 @@ -45808,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 @@ -45820,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 @@ -45832,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 @@ -45844,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 @@ -45856,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 @@ -45868,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 @@ -45880,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 @@ -45892,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 @@ -45904,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 @@ -45916,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 @@ -45928,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 @@ -45940,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 @@ -45952,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 @@ -45964,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 @@ -45976,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 @@ -45988,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 @@ -46000,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 @@ -46012,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 @@ -46024,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 @@ -46036,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 @@ -46048,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 @@ -46060,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 @@ -46072,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 @@ -46084,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 @@ -46096,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 @@ -46108,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 @@ -46120,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 @@ -46132,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 @@ -46144,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 @@ -46156,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 @@ -46168,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 @@ -46180,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 @@ -46192,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 @@ -46204,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 @@ -46216,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 @@ -46228,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 @@ -46240,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 @@ -46252,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 @@ -46264,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 @@ -46276,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 @@ -46288,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 @@ -46300,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 @@ -46312,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 @@ -46324,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 @@ -46336,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 @@ -46348,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 @@ -46360,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 @@ -46372,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 @@ -46384,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 @@ -46396,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 @@ -46408,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 @@ -46420,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 @@ -46432,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 @@ -46444,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 @@ -46456,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 @@ -46468,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 @@ -46480,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 @@ -46492,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 @@ -46504,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 @@ -46516,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 @@ -46528,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 @@ -46540,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 @@ -46552,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 @@ -46564,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 @@ -46576,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 @@ -46588,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 @@ -46603,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 @@ -46618,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 @@ -46633,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 @@ -46648,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 @@ -46663,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 @@ -46678,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 @@ -46693,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 @@ -46708,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 @@ -46723,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 @@ -46738,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 @@ -46753,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 @@ -46768,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 @@ -46783,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 @@ -46798,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 @@ -46813,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 @@ -46828,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 @@ -46843,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 @@ -46858,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 @@ -46873,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 @@ -46888,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 @@ -46903,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 @@ -46918,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 @@ -46933,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 @@ -46948,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 @@ -46963,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 @@ -46978,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 @@ -46993,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 @@ -47008,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 @@ -47023,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 @@ -47038,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 @@ -47053,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 @@ -47068,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 @@ -47083,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 @@ -47098,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 @@ -47113,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 @@ -47128,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 @@ -47143,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 @@ -47158,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 @@ -47173,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 @@ -47188,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 @@ -47203,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 @@ -47218,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 @@ -47233,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 @@ -47248,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 @@ -47263,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 @@ -47278,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 @@ -47293,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 @@ -47308,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 @@ -47323,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 @@ -47338,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 @@ -47353,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 @@ -47368,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 @@ -47383,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 @@ -47398,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 @@ -47413,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 @@ -47428,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 @@ -47443,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 @@ -47458,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 @@ -47473,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 @@ -47488,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 @@ -47503,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 @@ -47518,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 @@ -47533,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 @@ -47548,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 @@ -47563,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 @@ -47578,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 @@ -47593,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 @@ -47608,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 @@ -47623,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 @@ -47638,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 @@ -47653,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 @@ -47668,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 @@ -47683,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 @@ -47698,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 @@ -47713,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 @@ -47728,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 @@ -47743,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 @@ -47758,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 @@ -47773,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 @@ -47788,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 @@ -47803,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 @@ -47818,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 @@ -47833,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 @@ -47848,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 @@ -47863,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 @@ -47878,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 @@ -47893,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 @@ -47908,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 @@ -47923,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 @@ -47938,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 @@ -47953,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 @@ -47968,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 @@ -47983,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 @@ -47998,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 @@ -48013,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 @@ -48028,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 @@ -48043,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 @@ -48058,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 @@ -48073,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 @@ -48088,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 @@ -48103,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 @@ -48118,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 @@ -48133,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 @@ -48148,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 @@ -48163,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 @@ -48178,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 @@ -48193,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 @@ -48208,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 @@ -48223,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 @@ -48238,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 @@ -48253,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 @@ -48268,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 @@ -48283,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 @@ -48298,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 @@ -48313,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 @@ -48328,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 @@ -48343,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 @@ -48358,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 @@ -48373,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 @@ -48388,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 @@ -48403,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 @@ -48418,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 @@ -48433,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 @@ -48448,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 @@ -48463,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 @@ -48478,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 @@ -48493,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 @@ -48508,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 @@ -48523,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 @@ -48538,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 @@ -48553,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 @@ -48568,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 @@ -48583,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 @@ -48598,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 @@ -48613,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 @@ -48628,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 @@ -48643,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 @@ -48658,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 @@ -48673,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 @@ -48688,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 @@ -48703,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 @@ -48718,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 @@ -48733,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 @@ -48748,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 @@ -48763,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 @@ -48778,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 @@ -48793,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 @@ -48808,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 @@ -48823,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 @@ -48838,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 @@ -48853,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 @@ -48868,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 @@ -48883,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 @@ -48898,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 @@ -48921,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 @@ -48944,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 @@ -48967,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 @@ -48990,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 @@ -49013,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 @@ -49036,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 @@ -49059,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 @@ -49082,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 @@ -49105,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 @@ -49128,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 @@ -49151,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 @@ -49174,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 @@ -49197,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 @@ -49220,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 @@ -49243,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 @@ -49266,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 @@ -49289,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 @@ -49312,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 @@ -49335,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 @@ -49358,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 @@ -49381,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 @@ -49404,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 @@ -49427,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 @@ -49450,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 @@ -49473,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 @@ -49496,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 @@ -49519,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 @@ -49542,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 @@ -49565,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 @@ -49588,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 @@ -49611,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 @@ -49634,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 @@ -49657,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 @@ -49680,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 @@ -49703,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 @@ -49726,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 @@ -49749,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 @@ -49772,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 @@ -49795,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 @@ -49818,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 @@ -49841,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 @@ -49864,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 @@ -49887,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 @@ -49910,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 @@ -49933,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 @@ -49956,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 @@ -49979,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 @@ -50002,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 @@ -50025,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 @@ -50048,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 @@ -50071,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 @@ -50094,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 @@ -50107,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 @@ -50120,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 @@ -50132,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 @@ -50144,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 @@ -50156,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 @@ -50168,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 @@ -50180,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 @@ -50192,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 @@ -50204,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 @@ -50216,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 @@ -50228,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 @@ -50240,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 @@ -50252,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 @@ -50264,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 @@ -50276,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 @@ -50288,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 @@ -50300,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 @@ -50312,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 @@ -50324,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 @@ -50338,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 @@ -50352,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 @@ -50366,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 @@ -50380,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 @@ -50394,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 @@ -50408,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 @@ -50422,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 @@ -50436,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 @@ -50450,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 @@ -50464,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 @@ -50478,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 @@ -50492,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 @@ -50506,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 @@ -50520,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 @@ -50534,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 @@ -50548,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 @@ -50562,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 @@ -50576,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 @@ -50590,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 @@ -50604,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 @@ -50618,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 @@ -50632,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 @@ -50646,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 @@ -50660,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 @@ -50674,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 @@ -50688,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 @@ -50702,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 @@ -50716,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 @@ -50730,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 @@ -50744,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 @@ -50758,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 @@ -50772,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 @@ -50786,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 @@ -50800,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 @@ -50814,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 @@ -50828,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 @@ -50842,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 @@ -50856,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 @@ -50870,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 @@ -50884,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 @@ -50898,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 @@ -50912,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 @@ -50926,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 @@ -50940,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 @@ -50954,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 @@ -50968,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 @@ -50982,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 @@ -50996,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 @@ -51010,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 @@ -51024,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 @@ -51038,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 @@ -51052,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 @@ -51066,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 @@ -51080,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 @@ -51094,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 @@ -51108,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 @@ -51122,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 @@ -51136,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 @@ -51150,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 @@ -51164,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 @@ -51178,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 @@ -51192,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 @@ -51206,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 @@ -51220,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 @@ -51234,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 @@ -51248,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 @@ -51262,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 @@ -51275,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 @@ -51288,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 @@ -51301,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 @@ -51314,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 @@ -51327,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 @@ -51340,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 @@ -51353,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 @@ -51366,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 @@ -51379,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 @@ -51392,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 @@ -51405,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 @@ -51418,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 @@ -51431,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 @@ -51444,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 @@ -51457,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 @@ -51470,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 @@ -51483,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 @@ -51496,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 @@ -51509,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 @@ -51522,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 @@ -51535,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 @@ -51548,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 @@ -51561,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 @@ -51574,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 @@ -51587,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 @@ -51600,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 @@ -51613,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 @@ -51626,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 @@ -51639,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 @@ -51652,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 @@ -51674,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 @@ -51696,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 @@ -51718,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 @@ -51740,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 @@ -51762,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 @@ -51784,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 @@ -51806,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 @@ -51828,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 @@ -51850,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 @@ -51872,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 @@ -51894,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 @@ -51916,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 @@ -51938,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 @@ -51960,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 @@ -51982,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 @@ -52004,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 @@ -52026,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 @@ -52048,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 @@ -52070,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 @@ -52092,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 @@ -52114,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 @@ -52136,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 @@ -52158,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 @@ -52180,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 @@ -52202,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 @@ -52224,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 @@ -52246,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 @@ -52268,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 @@ -52290,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 @@ -52312,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 @@ -52334,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 @@ -52356,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 @@ -52378,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 @@ -52400,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 @@ -52422,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 @@ -52444,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 @@ -52466,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 @@ -52488,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 @@ -52510,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 @@ -52532,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 @@ -52554,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 @@ -52576,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 @@ -52598,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 @@ -52620,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 @@ -52642,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 @@ -52664,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 @@ -52686,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 @@ -52708,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 @@ -52730,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 @@ -52752,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 @@ -52774,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 @@ -52796,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 @@ -52818,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 @@ -52840,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 @@ -52862,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 @@ -52884,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 @@ -52906,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 @@ -52928,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 @@ -52950,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 @@ -52972,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 @@ -52994,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 @@ -53016,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 @@ -53038,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 @@ -53060,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 @@ -53082,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 @@ -53104,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 @@ -53126,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 @@ -53148,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 @@ -53170,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 @@ -53192,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 @@ -53214,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 @@ -53236,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 @@ -53258,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 @@ -53280,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 @@ -53302,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 @@ -53324,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 @@ -53346,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 @@ -53368,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 @@ -53390,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 @@ -53412,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 @@ -53434,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 @@ -53456,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 @@ -53478,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 @@ -53500,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 @@ -53513,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 @@ -53526,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 @@ -53539,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 @@ -53552,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 @@ -53565,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 @@ -53578,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 @@ -53591,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 @@ -53604,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 @@ -53617,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 @@ -53630,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 @@ -53643,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 @@ -53656,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 @@ -53669,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 @@ -53682,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 @@ -53695,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 @@ -53708,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 @@ -53721,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 @@ -53734,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 @@ -53747,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 @@ -53760,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 @@ -53773,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 @@ -53786,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 @@ -53799,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 @@ -53812,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 @@ -53825,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 @@ -53838,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 @@ -53851,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 @@ -53864,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 @@ -53877,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 @@ -53890,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 @@ -53903,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 @@ -53916,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 @@ -53939,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 @@ -53962,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 @@ -53985,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 @@ -54008,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 @@ -54031,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 @@ -54054,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 @@ -54077,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 @@ -54100,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 @@ -54123,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 @@ -54146,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 @@ -54169,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 @@ -54192,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 @@ -54215,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 @@ -54238,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 @@ -54261,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 @@ -54284,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 @@ -54307,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 @@ -54330,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 @@ -54353,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 @@ -54376,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 @@ -54399,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 @@ -54422,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 @@ -54445,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 @@ -54468,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 @@ -54491,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 @@ -54514,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 @@ -54537,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 @@ -54560,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 @@ -54583,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 @@ -54606,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 @@ -54629,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 @@ -54652,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 @@ -54675,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 @@ -54698,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 @@ -54721,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 @@ -54744,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 @@ -54767,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 @@ -54790,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 @@ -54813,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 @@ -54836,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 @@ -54859,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 @@ -54882,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 @@ -54905,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 @@ -54928,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 @@ -54951,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 @@ -54974,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 @@ -54997,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 @@ -55020,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 @@ -55033,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 @@ -55046,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 @@ -55059,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 @@ -55072,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 @@ -55085,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 @@ -55098,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 @@ -55111,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 @@ -55124,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 @@ -55137,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 @@ -55150,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 @@ -55163,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 @@ -55176,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 @@ -55189,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 @@ -55202,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 @@ -55215,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 @@ -55228,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 @@ -55251,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 @@ -55274,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 @@ -55297,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 @@ -55320,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 @@ -55343,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 @@ -55357,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 @@ -55371,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 @@ -55385,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 @@ -55399,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 @@ -55413,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 @@ -55427,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 @@ -55441,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 @@ -55455,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 @@ -55469,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 @@ -55483,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 @@ -55497,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 @@ -55511,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 @@ -55525,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 @@ -55539,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 @@ -55553,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 @@ -55567,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 @@ -55581,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 @@ -55595,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 @@ -55609,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 @@ -55623,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 @@ -55637,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 @@ -55651,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 @@ -55665,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 @@ -55679,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 @@ -55693,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 @@ -55707,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 @@ -55721,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 @@ -55735,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 @@ -55749,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 @@ -55763,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 @@ -55777,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 @@ -55791,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 @@ -55805,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 @@ -55819,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 @@ -55833,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 @@ -55847,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 @@ -55861,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 @@ -55875,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 @@ -55889,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 @@ -55903,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 @@ -55917,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 @@ -55931,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 @@ -55945,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 @@ -55959,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 @@ -55973,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 @@ -55987,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 @@ -56001,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 @@ -56015,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 @@ -56029,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 @@ -56043,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 @@ -56057,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 @@ -56070,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 @@ -56083,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 @@ -56096,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 @@ -56109,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 @@ -56122,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 @@ -56135,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 @@ -56148,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 @@ -56161,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 @@ -56174,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 @@ -56187,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 @@ -56200,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 @@ -56213,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 @@ -56226,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 @@ -56239,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 @@ -56252,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 @@ -56265,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 @@ -56278,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 @@ -56291,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 @@ -56304,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 @@ -56317,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 @@ -56330,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 @@ -56343,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 @@ -56356,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 @@ -56369,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 @@ -56382,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 @@ -56395,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 @@ -56408,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 @@ -56421,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 @@ -56434,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 @@ -56447,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 @@ -56469,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 @@ -56491,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 @@ -56513,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 @@ -56535,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 @@ -56557,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 @@ -56579,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 @@ -56601,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 @@ -56623,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 @@ -56645,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 @@ -56667,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 @@ -56689,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 @@ -56711,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 @@ -56733,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 @@ -56755,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 @@ -56777,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 @@ -56799,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 @@ -56821,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 @@ -56843,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 @@ -56865,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 @@ -56887,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 @@ -56909,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 @@ -56931,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 @@ -56953,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 @@ -56975,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 @@ -56997,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 @@ -57010,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 @@ -57023,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 @@ -57036,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 @@ -57049,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 @@ -57062,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 @@ -57075,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 @@ -57088,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 @@ -57101,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 @@ -57114,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 @@ -57127,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 @@ -57140,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 @@ -57153,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 @@ -57166,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 @@ -57179,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 @@ -57192,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 @@ -57205,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 @@ -57218,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 @@ -57231,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 @@ -57244,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 @@ -57257,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 @@ -57270,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 @@ -57283,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 @@ -57296,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 @@ -57309,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 @@ -57322,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 @@ -57395,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 @@ -57408,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 @@ -57421,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 @@ -57434,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 @@ -57447,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 @@ -57460,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 @@ -57473,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 @@ -57486,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 @@ -57499,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 @@ -57512,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 @@ -57525,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 @@ -57538,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 @@ -57551,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 @@ -57564,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 @@ -57577,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 @@ -57590,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 @@ -57603,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 @@ -57616,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 @@ -57629,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 @@ -57642,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 @@ -57655,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 @@ -57668,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 @@ -57681,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 @@ -57694,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 @@ -57707,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 @@ -57720,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 @@ -57733,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 @@ -57746,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 @@ -57759,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 @@ -57772,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 @@ -57785,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 @@ -57798,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 @@ -57811,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 @@ -57824,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 @@ -57837,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 @@ -57850,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 @@ -57863,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 @@ -57876,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 @@ -57889,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 @@ -57902,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 @@ -57915,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 @@ -57928,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 @@ -57941,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 @@ -57954,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 @@ -57964,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 35c1d789e8..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,2635 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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) @@ -3282,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 @@ -3306,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 @@ -3319,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 @@ -3332,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 @@ -3345,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 @@ -3358,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 @@ -3371,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 @@ -3384,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 @@ -3397,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 @@ -3410,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 @@ -3423,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 @@ -3436,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 @@ -3449,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 @@ -3462,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 @@ -3475,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 @@ -3488,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 @@ -3501,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 @@ -3514,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 @@ -3527,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 @@ -3540,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 @@ -3553,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 @@ -3566,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 @@ -3579,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 @@ -3592,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 @@ -3605,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 @@ -3618,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 @@ -3631,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 @@ -3644,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 @@ -3657,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 @@ -3670,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 @@ -3683,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 @@ -3696,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 @@ -3709,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 @@ -3722,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 @@ -3735,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 @@ -3748,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 @@ -3761,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 @@ -3774,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 @@ -3787,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 @@ -3800,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 @@ -3813,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 @@ -3826,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 @@ -3839,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 @@ -3852,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 @@ -3865,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 @@ -3878,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 @@ -3891,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 @@ -3904,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 @@ -3917,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 @@ -3930,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 @@ -3943,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 @@ -3956,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 @@ -3969,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 @@ -3983,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 @@ -3997,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 @@ -4010,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 @@ -4023,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 @@ -4037,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 @@ -4051,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 @@ -4064,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 @@ -4077,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 @@ -4091,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 @@ -4105,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 @@ -4118,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 @@ -4131,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 @@ -4145,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 @@ -4159,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 @@ -4172,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 @@ -4186,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 @@ -4200,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 @@ -4215,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 @@ -4228,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 @@ -4242,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 @@ -4255,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 @@ -4269,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 @@ -4282,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 @@ -4295,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 @@ -4308,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 @@ -4321,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 @@ -4334,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 @@ -4347,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 @@ -4360,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 @@ -4373,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 @@ -4386,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 @@ -4399,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 @@ -4412,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 @@ -4425,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 @@ -4438,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 @@ -4451,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 @@ -4464,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 @@ -4477,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 @@ -4490,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 @@ -4503,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 @@ -4516,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 @@ -4529,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 @@ -4542,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 @@ -4555,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 @@ -4568,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 @@ -4581,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 @@ -4594,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 @@ -4607,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 @@ -4620,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 @@ -4633,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 @@ -4646,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 @@ -4659,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 @@ -4672,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 @@ -4685,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 @@ -4698,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 @@ -4711,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 @@ -4724,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 @@ -4737,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 @@ -4750,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 @@ -4763,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 @@ -4776,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 @@ -4790,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 @@ -4804,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 @@ -4817,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 @@ -4830,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 @@ -4844,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 @@ -4858,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 @@ -4871,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 @@ -4884,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 @@ -4898,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 @@ -4912,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 @@ -4925,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 @@ -4938,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 @@ -4952,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 @@ -4966,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 @@ -4979,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 @@ -4993,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 @@ -5007,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 @@ -5022,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 @@ -5035,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 @@ -5049,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 @@ -5062,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 @@ -5076,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 @@ -5091,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 @@ -5185,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 565e8c1322..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,1695 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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) @@ -2023,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 @@ -2035,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 @@ -2072,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 @@ -2087,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 @@ -2150,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 @@ -2178,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 @@ -2225,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 @@ -2237,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 @@ -2245,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 @@ -2284,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 @@ -2297,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 @@ -2310,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 @@ -2323,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 @@ -2336,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 @@ -2349,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 @@ -2362,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 @@ -2375,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 @@ -2388,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 @@ -2401,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 @@ -2414,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 @@ -2427,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 @@ -2440,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 @@ -2453,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 @@ -2466,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 @@ -2479,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 @@ -2492,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 @@ -2505,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 @@ -2518,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 @@ -2531,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 @@ -2544,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 @@ -2557,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 @@ -2570,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 @@ -2583,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 @@ -2596,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 @@ -2609,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 @@ -2622,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 @@ -2635,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 @@ -2648,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 @@ -2661,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 @@ -2674,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 @@ -2687,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 @@ -2700,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 @@ -2713,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 @@ -2726,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 @@ -2739,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 @@ -2752,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 @@ -2765,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 @@ -2778,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 @@ -2791,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 @@ -2804,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 @@ -2817,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 @@ -2830,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 @@ -2843,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 @@ -2856,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 @@ -2869,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 @@ -2882,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 @@ -2895,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 @@ -2908,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 @@ -2921,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 @@ -2934,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 @@ -2947,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 @@ -2960,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 @@ -2973,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 @@ -2986,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 @@ -2999,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 @@ -3012,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 @@ -3025,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 @@ -3038,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 @@ -3051,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 @@ -3064,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 @@ -3077,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 @@ -3090,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 @@ -3103,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 @@ -3116,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 @@ -3129,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 @@ -3142,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 @@ -3155,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 @@ -3168,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 @@ -3181,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 @@ -3194,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 @@ -3207,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 @@ -3220,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 @@ -3233,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 @@ -3246,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 @@ -3259,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 @@ -3272,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 @@ -3285,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 @@ -3298,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 @@ -3311,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 @@ -3324,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 @@ -3337,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 @@ -3350,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 @@ -3363,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 @@ -3376,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 @@ -3389,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 @@ -3402,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 @@ -3415,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 @@ -3428,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 @@ -3441,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 @@ -3454,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 @@ -3467,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 @@ -3480,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 @@ -3493,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 @@ -3506,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 @@ -3519,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 @@ -3532,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 @@ -3545,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 @@ -3558,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 @@ -3571,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 @@ -3584,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 @@ -3597,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 @@ -3610,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 @@ -3623,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 @@ -3636,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 @@ -3649,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 @@ -3662,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 @@ -3675,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 @@ -3688,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 @@ -3701,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 @@ -3714,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 @@ -3727,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 @@ -3740,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 @@ -3753,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 @@ -3766,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 @@ -3779,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 @@ -3792,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 @@ -3805,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 @@ -3818,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 @@ -3831,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 @@ -3844,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 @@ -3857,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 @@ -3870,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 @@ -3883,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 @@ -3896,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 @@ -3909,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 @@ -3922,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 @@ -3935,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 @@ -3948,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 @@ -3961,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 @@ -3974,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 @@ -3987,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 @@ -4000,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 @@ -4013,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 @@ -4026,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 @@ -4036,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 7731d8d711..5c38fbf27e 100644 --- a/tests/compiler/std/pointer.debug.wat +++ b/tests/compiler/std/pointer.debug.wat @@ -1,2696 +1,29 @@ (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 $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)) (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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2768,102 +101,115 @@ (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 - 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) + 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 i32.eqz if i32.const 0 - i32.const 2400 - i32.const 78 + i32.const 32 + 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 i32.eqz if i32.const 0 - i32.const 2400 - i32.const 79 + i32.const 32 + 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 @@ -2871,19 +217,19 @@ i32.eqz if i32.const 0 - i32.const 2400 - i32.const 83 + i32.const 32 + 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 @@ -2891,13 +237,13 @@ i32.eqz if i32.const 0 - i32.const 2400 - i32.const 84 + i32.const 32 + 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 @@ -2905,27 +251,27 @@ 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 i32.eqz if i32.const 0 - i32.const 2400 - i32.const 87 + i32.const 32 + 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 @@ -2933,50 +279,50 @@ 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 i32.eqz if i32.const 0 - i32.const 2400 - i32.const 90 + i32.const 32 + 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 i32.eqz if i32.const 0 - i32.const 2400 - i32.const 92 + i32.const 32 + 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 @@ -2987,88 +333,88 @@ i32.eqz if i32.const 0 - i32.const 2400 - i32.const 94 + i32.const 32 + 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 i32.eqz if i32.const 0 - i32.const 2400 - i32.const 95 + i32.const 32 + 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 i32.eqz if i32.const 0 - i32.const 2400 - i32.const 97 + i32.const 32 + 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 i32.eqz if i32.const 0 - i32.const 2400 - i32.const 100 + i32.const 32 + 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 @@ -3076,19 +422,19 @@ i32.eqz if i32.const 0 - i32.const 2400 - i32.const 101 + i32.const 32 + 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 @@ -3096,21 +442,21 @@ i32.eqz if i32.const 0 - i32.const 2400 - i32.const 102 + i32.const 32 + 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 @@ -3131,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 2400 - i32.const 105 + i32.const 32 + 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 @@ -3167,19 +513,19 @@ i32.eqz if i32.const 0 - i32.const 2400 - i32.const 106 + i32.const 32 + 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 @@ -3187,19 +533,19 @@ i32.eqz if i32.const 0 - i32.const 2400 - i32.const 107 + i32.const 32 + 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 @@ -3228,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 @@ -3239,20 +585,20 @@ 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 i32.eqz if i32.const 0 - i32.const 2400 - i32.const 113 + i32.const 32 + 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 @@ -3263,20 +609,20 @@ 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 i32.eqz if i32.const 0 - i32.const 2400 - i32.const 114 + i32.const 32 + 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 @@ -3287,20 +633,20 @@ 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 i32.eqz if i32.const 0 - i32.const 2400 - i32.const 116 + i32.const 32 + 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 @@ -3311,15 +657,15 @@ 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 i32.eqz if i32.const 0 - i32.const 2400 - i32.const 117 + i32.const 32 + i32.const 50 i32.const 1 call $~lib/builtins/abort unreachable @@ -3331,8 +677,8 @@ i32.eqz if i32.const 0 - i32.const 2400 - i32.const 119 + i32.const 32 + i32.const 52 i32.const 1 call $~lib/builtins/abort unreachable @@ -3344,8 +690,8 @@ i32.eqz if i32.const 0 - i32.const 2400 - i32.const 120 + i32.const 32 + i32.const 53 i32.const 1 call $~lib/builtins/abort unreachable @@ -3363,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 @@ -3374,20 +720,20 @@ 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 i32.eqz if i32.const 0 - i32.const 2400 - i32.const 123 + i32.const 32 + 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 @@ -3398,15 +744,15 @@ 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 i32.eqz if i32.const 0 - i32.const 2400 - i32.const 124 + i32.const 32 + i32.const 57 i32.const 1 call $~lib/builtins/abort unreachable @@ -3418,8 +764,8 @@ i32.eqz if i32.const 0 - i32.const 2400 - i32.const 125 + i32.const 32 + i32.const 58 i32.const 1 call $~lib/builtins/abort unreachable @@ -3433,22 +779,22 @@ 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 i32.eqz if i32.const 0 - i32.const 2400 - i32.const 128 + i32.const 32 + i32.const 61 i32.const 1 call $~lib/builtins/abort unreachable @@ -3460,107 +806,264 @@ i32.eqz if i32.const 0 - i32.const 2400 - i32.const 129 + i32.const 32 + i32.const 62 i32.const 1 call $~lib/builtins/abort unreachable end - ) - (func $~start - call $start:std/pointer - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s + 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 35248 - i32.const 35296 + 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 - ) - (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 + 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 - local.get $6 - call $~lib/string/String#get:length + global.get $std/pointer/src + local.set $this|71 i32.const 1 - i32.shl - local.set $thisSize - local.get $other - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 + 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 - local.get $6 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $otherSize - local.get $thisSize - local.get $otherSize + 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.set $outSize - local.get $outSize - i32.const 0 + 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 96 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 + 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 - global.set $~lib/memory/__stack_pointer - local.get $6 - return + 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 + end + ) + (func $~start + call $start:std/pointer + ) + (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 32848 + i32.const 32896 + 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 @@ -3569,322 +1072,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 4def5e41c3..19dcd14aed 100644 --- a/tests/compiler/std/pointer.release.wat +++ b/tests/compiler/std/pointer.release.wat @@ -1,1754 +1,20 @@ (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 $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) "\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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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) @@ -1756,38 +22,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 @@ -1800,9 +34,8 @@ i32.ne if i32.const 0 - i32.const 3424 - i32.const 83 - i32.const 1 + i32.const 1056 + i32.const 16 call $~lib/builtins/abort unreachable end @@ -1812,9 +45,8 @@ i32.ne if i32.const 0 - i32.const 3424 - i32.const 84 - i32.const 1 + i32.const 1056 + i32.const 17 call $~lib/builtins/abort unreachable end @@ -1827,9 +59,8 @@ i32.ne if i32.const 0 - i32.const 3424 - i32.const 87 - i32.const 1 + i32.const 1056 + i32.const 20 call $~lib/builtins/abort unreachable end @@ -1842,9 +73,8 @@ i32.ne if i32.const 0 - i32.const 3424 - i32.const 90 - i32.const 1 + i32.const 1056 + i32.const 23 call $~lib/builtins/abort unreachable end @@ -1853,9 +83,8 @@ i32.ne if i32.const 0 - i32.const 3424 - i32.const 92 - i32.const 1 + i32.const 1056 + i32.const 25 call $~lib/builtins/abort unreachable end @@ -1870,9 +99,8 @@ i32.ne if i32.const 0 - i32.const 3424 - i32.const 94 - i32.const 1 + i32.const 1056 + i32.const 27 call $~lib/builtins/abort unreachable end @@ -1881,9 +109,8 @@ i32.ne if i32.const 0 - i32.const 3424 - i32.const 95 - i32.const 1 + i32.const 1056 + i32.const 28 call $~lib/builtins/abort unreachable end @@ -1892,9 +119,8 @@ i32.ne if i32.const 0 - i32.const 3424 - i32.const 97 - i32.const 1 + i32.const 1056 + i32.const 30 call $~lib/builtins/abort unreachable end @@ -1911,9 +137,8 @@ i32.ne if i32.const 0 - i32.const 3424 - i32.const 100 - i32.const 1 + i32.const 1056 + i32.const 33 call $~lib/builtins/abort unreachable end @@ -1923,9 +148,8 @@ i32.ne if i32.const 0 - i32.const 3424 - i32.const 101 - i32.const 1 + i32.const 1056 + i32.const 34 call $~lib/builtins/abort unreachable end @@ -1935,9 +159,8 @@ i32.ne if i32.const 0 - i32.const 3424 - i32.const 102 - i32.const 1 + i32.const 1056 + i32.const 35 call $~lib/builtins/abort unreachable end @@ -1960,9 +183,8 @@ i32.eq if i32.const 0 - i32.const 3424 - i32.const 105 - i32.const 1 + i32.const 1056 + i32.const 38 call $~lib/builtins/abort unreachable end @@ -1972,9 +194,8 @@ i32.ne if i32.const 0 - i32.const 3424 - i32.const 106 - i32.const 1 + i32.const 1056 + i32.const 39 call $~lib/builtins/abort unreachable end @@ -1984,9 +205,8 @@ i32.ne if i32.const 0 - i32.const 3424 - i32.const 107 - i32.const 1 + i32.const 1056 + i32.const 40 call $~lib/builtins/abort unreachable end @@ -2002,9 +222,8 @@ f32.ne if i32.const 0 - i32.const 3424 - i32.const 113 - i32.const 1 + i32.const 1056 + i32.const 46 call $~lib/builtins/abort unreachable end @@ -2014,9 +233,8 @@ f32.ne if i32.const 0 - i32.const 3424 - i32.const 114 - i32.const 1 + i32.const 1056 + i32.const 47 call $~lib/builtins/abort unreachable end @@ -2026,9 +244,8 @@ f32.ne if i32.const 0 - i32.const 3424 - i32.const 116 - i32.const 1 + i32.const 1056 + i32.const 49 call $~lib/builtins/abort unreachable end @@ -2038,9 +255,8 @@ f32.ne if i32.const 0 - i32.const 3424 - i32.const 117 - i32.const 1 + i32.const 1056 + i32.const 50 call $~lib/builtins/abort unreachable end @@ -2050,9 +266,8 @@ f32.ne if i32.const 0 - i32.const 3424 - i32.const 119 - i32.const 1 + i32.const 1056 + i32.const 52 call $~lib/builtins/abort unreachable end @@ -2062,9 +277,8 @@ f32.ne if i32.const 0 - i32.const 3424 - i32.const 120 - i32.const 1 + i32.const 1056 + i32.const 53 call $~lib/builtins/abort unreachable end @@ -2077,9 +291,8 @@ f32.ne if i32.const 0 - i32.const 3424 - i32.const 123 - i32.const 1 + i32.const 1056 + i32.const 56 call $~lib/builtins/abort unreachable end @@ -2089,9 +302,8 @@ f32.ne if i32.const 0 - i32.const 3424 - i32.const 124 - i32.const 1 + i32.const 1056 + i32.const 57 call $~lib/builtins/abort unreachable end @@ -2101,9 +313,8 @@ f32.ne if i32.const 0 - i32.const 3424 - i32.const 125 - i32.const 1 + i32.const 1056 + i32.const 58 call $~lib/builtins/abort unreachable end @@ -2116,9 +327,8 @@ f32.ne if i32.const 0 - i32.const 3424 - i32.const 128 - i32.const 1 + i32.const 1056 + i32.const 61 call $~lib/builtins/abort unreachable end @@ -2128,9 +338,85 @@ f32.ne if i32.const 0 - i32.const 3424 - i32.const 129 - i32.const 1 + i32.const 1056 + 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 @@ -2138,228 +424,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/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); 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 c8ea2819e3..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,818 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -2101,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 @@ -2111,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 @@ -2149,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 @@ -2183,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 @@ -2244,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 @@ -2265,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 @@ -2294,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 @@ -2315,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 @@ -2344,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 @@ -2365,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 @@ -2394,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 @@ -2441,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 @@ -2456,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 @@ -2471,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 @@ -2485,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 @@ -2528,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 @@ -2543,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 @@ -2558,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 @@ -2573,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 @@ -2587,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 @@ -2630,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 @@ -2645,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 @@ -2660,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 @@ -2675,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 @@ -2689,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 @@ -2732,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 @@ -2747,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 @@ -2762,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 @@ -2777,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 @@ -2791,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 @@ -2834,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 @@ -2846,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 @@ -2884,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 53dd1f41bf..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,2629 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -3070,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 @@ -3156,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 68ebb2f950..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,1799 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -1834,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 @@ -1861,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 fabd8f0666..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,2635 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 ) @@ -2703,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 @@ -2725,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) @@ -2930,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 @@ -2959,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 @@ -2970,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 547fbdd3aa..a911214571 100644 --- a/tests/compiler/tablebase.release.wat +++ b/tests/compiler/tablebase.release.wat @@ -1,1763 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -1765,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 @@ -1806,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 @@ -1817,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 e5129c7973..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,2732 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2864,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 6ae4a3ab37..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,1930 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 3535d5ee1c..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,1357 +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 - 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 + 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 @@ -2993,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 51f638b987..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,665 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -1783,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 @@ -1792,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 @@ -1844,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 @@ -1855,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 @@ -1881,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 @@ -1911,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 2bb4822096..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,2633 +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 - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $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 @@ -2831,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 @@ -2847,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 @@ -2866,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 @@ -2899,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 @@ -3003,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 @@ -3089,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 94ff027fe1..8c55c895b9 100644 --- a/tests/compiler/typealias.release.wat +++ b/tests/compiler/typealias.release.wat @@ -1,1767 +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 - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$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 @@ -1772,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 @@ -1828,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 @@ -1855,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 @@ -1958,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 @@ -1978,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 @@ -2007,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